01 · BUCLES
Cómo funcionan for y range() en Python
Un for toma los elementos de un iterable, uno a uno. En cada vuelta asigna el siguiente elemento a la variable del bucle y ejecuta su cuerpo.
for i in range(6):
print(i)Explorar el ejemplo en Traza ↗¿Qué valores produce range(6)?
Produce 0, 1, 2, 3, 4 y 5. El límite final, 6, queda fuera. Aunque aquí lo dibujamos como casillas, range es una secuencia de números, no una lista creada en memoria.
- El primer valor se asigna a
i: ahora vale 0. - Se ejecuta
print(i). - El bucle toma el siguiente valor y repite el cuerpo.
- Después del 5 no quedan valores y el programa continúa tras el bucle.
Inicio, fin y salto
range(2, 8, 2) produce 2, 4 y 6. range(5, 0, -1) produce 5, 4, 3, 2 y 1. El salto no puede ser cero.
Recorrer una lista o un texto
for fruta in ["pera", "uva", "kiwi"]:
print(fruta)
for letra in "Python":
print(letra)fruta recibe cada fruta, y letra recibe cada carácter. La variable recibe el elemento; no tiene por qué ser su índice. En Traza, el cuadrado muestra ese valor y se coloca sobre la casilla correspondiente.
Un error frecuente
Para acceder a los elementos de una lista por posición, el último índice válido es len(lista) - 1. range(len(lista)) produce precisamente sus índices válidos. Si la colección está vacía, el cuerpo no se ejecuta.