Elegir entre bucles for y while
Note
Consulte la pestaña Texto e imágenes para obtener más detalles.
Los programas son más útiles cuando pueden automatizar tareas repetitivas. En lugar de escribir el mismo código una y otra vez, puede usar un bucle para repetir automáticamente un bloque de código.
Python tiene dos tipos de bucles: for bucles y while bucles. Elegir la opción adecuada depende de si sabes de antemano cuántas veces repetir.
Bucle for (número conocido de repeticiones)
Use un for bucle cuando desee repetir una acción un número conocido de veces o cuando desee recorrer cada elemento de una colección.
Bucles con range()
La función integrada range() genera una secuencia de números para recorrer en bucle:
for i in range(5):
print(i)
Salida:
0
1
2
3
4
Observe que range(5) genera los números del 0 al 4. El bucle se ejecuta 5 veces y la variable i toma cada valor de la secuencia. La range() función comienza en 0 de forma predeterminada y se detiene antes del número especificado (5 en este caso).
Puede personalizar la secuencia proporcionando hasta tres valores: range(start, stop, step). El bucle se detendrá antes de alcanzar el objetivo de parada:
for number in range(1, 10, 2): # Start at 1, stop before 10, step by 2
print(number)
Salida:
1
3
5
7
9
Bucle while
Use un while bucle cuando desee repetir algo siempre que una condición siga siendo True. Puede usarlo cuando no sepa cuántas veces tendrá que repetir la acción con antelación.
health = 3
while health > 0:
print(f"Player is alive. Health: {health}")
health -= 1 # Modify the condition so the loop will eventually stop
Salida:
Player is alive. Health: 3
Player is alive. Health: 2
Player is alive. Health: 1
Evitar los bucles infinitos
Un while bucle inspecciona su condición antes de cada iteración. Si la condición es siempre True, el bucle nunca se detendrá. Este comportamiento se denomina bucle infinito y inmovilizará el programa.
Asegúrese siempre de que el código actualiza la condición para que finalmente se convierta en False. En el ejemplo anterior, restamos 1 de health en cada iteración del bucle. Cuando health se alcanzó 0, la condición se convirtió en Falsey el bucle se detuvo.
Elección del bucle correcto
Elija un for bucle cuando:
- Sabe cuántas veces desea repetir la acción.
- Se desea una salida automática tras un determinado número de repeticiones.
- Desea que una variable de contador realice un seguimiento de cuántas veces se ha ejecutado el bucle.
Elija un while bucle cuando:
- El número total de repeticiones depende de un estado variable.
- Está esperando que ocurra algo específico antes de detener el bucle (por ejemplo, la entrada del usuario).
- Necesita controlar cuándo se detiene el bucle, en lugar de un número fijo de repeticiones.