for
«Para cada valor, haz esto.» Esa es la esencia del bucle for. No pienses primero en símbolos; piensa en una tarea que se repite de forma controlada.
Identificar qué elementos se recorren y qué valor toma la variable en cada vuelta.
El problema que resuelve
Este código funciona, pero repite la misma idea:
print("Paso 1")
print("Paso 2")
print("Paso 3")
print("Paso 4")Si mañana necesitas veinte pasos, copiar veinte líneas sería incómodo y fácil de romper. Un bucle expresa la repetición una sola vez.
range() te da una serie de números
for numero in range(1, 5):
print("Paso", numero)Puedes leerlo así: «para cada numero desde 1 hasta antes de 5, muestra el paso». La salida usa 1, 2, 3 y 4.
Detalle que suele sorprender: el segundo número de range(1, 5) no se incluye. Por eso termina en 4.
Visualiza las vueltas
No intentes imaginar el bucle como algo que ocurre «todo a la vez». Piensa en cuatro momentos:
numerovale 1 → se ejecuta el bloque.numerovale 2 → se ejecuta otra vez.numerovale 3 → otra vuelta.numerovale 4 → última vuelta y termina.
El bloque indentado es lo que se repite
for numero in range(1, 4):
print(numero)
print("siguiente")
print("fin")Las dos líneas indentadas se ejecutan en cada vuelta. print("fin") está fuera del bloque y se ejecuta una sola vez al terminar el bucle.
for no significa “contar”: significa recorrer
range() es solo una fuente de elementos. Un string también se puede recorrer directamente:
"PY"→letra = "P"→letra = "Y"El programa está recorriendo números. Cámbialo para recorrer directamente las letras de "PY" y mostrar una por vuelta.
P Y
La salida aparecerá aquí.
Necesito una pista
- Lo que aparece después de
ines el conjunto de elementos que vas a recorrer. - Puedes escribir
for elemento in "PY":.
Ver una solución razonada
for elemento in "PY":
print(elemento)Cuando llegues a listas, volverás a esta misma idea con for elemento in lista. El bucle no cambia; cambia la colección que entrega los elementos.
Si sale una vuelta de más o de menos
Escribe a un lado los valores que esperas: 1, 2, 3, 4, 5. Después compara esa lista con los valores que genera tu range(). Los errores en los límites se vuelven mucho más fáciles de ver así.
Si puedes explicar qué valores toma numero en range(2, 5) y distinguir qué líneas están dentro del bucle, ya tienes el fundamento.