Saltar al contenido

Fundamentos de la pitón – Control de flujo

Es muy común necesitar hacer un cierto número de bucles y saber qué ronda se está ejecutando. Contemos hasta tres, por ejemplo:

123456789; x =1;mientras que x
pitón

El código asigna la variable x 1 para empezar, y con cada iteración del bucle while, x se incrementa en 1. Cuando la condición x < 4 ya no es cierta - cuando x es 4 - el bucle sale.

Fundamentos de la pitón – Control de flujo
Fundamentos de la pitón – Control de flujo

Para esas tareas en las que una variable tiene un valor y luego se incrementa en cada iteración, hay una sintaxis más limpia: el bucle for. El Python for loop se usa más comúnmente para asignar a una variable una secuencia de valores hasta que la secuencia se agota. Aquí está contando de nuevo - esta vez con un bucle for:

1234567;<;para x inrange(1,4):...print($0027X es $0027, x)...X es1X es2X es3;

pitón

Esta vez, no tenemos que hacer explícitamente un salto x en cada iteración - el bucle for hace eso por nosotros. La función range() produce una secuencia de números del 1 al 3. La firma completa de la función range es range(_inicio_,_parada_,_paso_). En nuestro caso, el bucle sale cuando x se convierte en 4. El argumento stop para range() es exclusivo : no se asignaría y el bloque no se ejecutaría una vez que el rango alcanzara ese valor.

El uso del argumento step te permite aumentar el valor en un valor distinto de uno. Así es como podemos imprimir algunos números pares comenzando en cero e incrementando en dos:

1234567;<;para n inrange(0,6,2):...print($0027Even $0027, n)...Even 0Even 2Even 4
pitón

Puedes contar hacia atrás, ajustando el paso a un número negativo :

123456 <

pitón

También hay una abreviatura si se quiere una secuencia numérica de cero a algún valor, usando el rango de firma simplificada(_stop_)

1234567 <

pitón

Este rango simplificado siempre comienza en cero y termina con el número que está por debajo del valor de parada dado. Nuestro ejemplo fue range(3) por lo que el último número impreso en el bucle es 2.

La sintaxis del bucle for usa la palabra clave in después del nombre de la variable. Esto debería darnos una pista sobre el hecho de que el rango es una especie de secuencia - ¡no necesariamente numérica! Por ejemplo, una cadena es una secuencia de caracteres. Podemos hacer un bucle sobre esos caracteres así:

123456 para la cosa en$0027Hi$0027:...print(thing)...Hi
pitón

Como puedes ver, cada letra de la cadena "Hi" se asigna a la cosa variable en cada iteración del bucle y se le da a la declaración print() en el bloque.

La cadena es sólo uno de los tipos de secuencia que puede proporcionar el bucle para. Otros tipos incluyen conjuntos, listas, tuplas y rango como vimos.

Aquí hay una forma de hacer un bucle sobre una lista de cuerdas:

12345678 ; stooges =[$0027larry$0027,$0027moe$0027,$0027curly$0027];<
A los títeres variables se les asigna una lista de cuerdas. El bucle for itera sobre la lista, asignando al títere variable un nombre a la vez de la lista de títeres (en orden) y lo pasa al bloque interior que lo imprime.