Artículo original escrito por Dionysia Lemonaki
Artículo original Python Do While – Loop Example
Traducido y adaptado por andres-torres
Los bucles son una característica muy útil y frecuente en todos los lenguajes de programación.
Si deseas automatizar una tarea específica de carácter repetitivo o ahorrarte la escritura de código repetitivo en tus programas. Usar un bucle es tu mejor opción.
Los bucles son un conjunto de instrucciones que se ejecutan repetidamente hasta que una condición es reunida. Aprendamos más acerca de como los bucles funcionan en Python.
Bucles en Python
Hay dos tipos de bucles en Python:
- Bucle
while
- Bucle
for
Centrémonos en el bucle while
y su funcionamiento.
¿Qué es el bucle while
en Python?
Su sintaxis general sería la siguiente:
while condicion:
ejecuta las intrucciones de este bucle
Un bucle while
ejecutará un bloque de código mientras la condición es verdadero, es decir True
. Seguirá ejecutándose hasta que el valor booleano de la condición deje de ser verdadero.
Un bucle while
siempre evaluará la condición antes de ejecutarse.
Si la condición se evalúa verdadero True
entonces se ejecutará el código dentro de la estructura de del bucle.
Por ejemplo, este bucle se ejecuta siempre y cuando numero
es menor que 10
:
numero = 0
while numero < 10:
print(f"Numero es {numero}!")
numero = numero + 1
Resultado:
Numero es 0!
Numero es 1!
Numero es 2!
Numero es 3!
Numero es 4!
Numero es 5!
Numero es 6!
Numero es 7!
Numero es 8!
Numero es 9!
Aquí, la variable numero
es fijada en 0
al inicio.
Antes de que cualquier código sea ejecutado, Python verifica la condición (numero < 10
). Verifica si la condición es True, imprime el siguiente estado Number is 0!
y así mientras que la condición continúa siendo verdadero.
numero
es entonces incrementado en 1
. La condición es reevaluada, y si nuevamente es ver verdadero, todo el proceso se repite has que numero
es igual a 9
.
Ahora cuando llegamos al punto Numero es 9!
y numero
es incrementado en uno, numero
es igual a 10
la condición deja de ser verdadero, y se convierte en falsoFalse
Es posible que el bucle while
nunca se ejecute si no cumple la condición:
numero = 50
while numero < 10 :
print(f"Numero es {numero}!")
Puesto que la condición es falsa, el bucle nunca se ejecutará.
No hagas bucles infinitos.
Cómo viste anteriormente, los bucles while
están acompañados típicamente por una variable cuyo valor cambia a través de la duración del bucle, hasta que finalmente se determina un punto en el cual el bucle llega a su cesación.
Si no agregas esta línea, crearás un bucle infinito.
numero
no se incrementaría o actualizaría. Siempre sería fijado en 0
por tanto la condición numero < 10
será verdadero siempre. Esto significa que el bucle continuará siempre.
# No hagas esto
numero = 0
while numero < 10:
print(f"Numero es {numero}!")
Resultado:
Numero es 0!
Numero es 0!
Numero es 0!
Numero es 0!
Numero es 0!
Numero es 0!
Numero es 0!
...
Se ejecuta infinitamente.
Es lo mismo que hacer esto:
#No hagas esto
while True:
print("Soy siempre verdadero")
¿Qué hacer si te encuentras en una situación así?
Presiona Control C
para escapar y terminar el bucle.
¿Qué es un bucle do while
?
La sintaxis general del bucle do while
en otros lenguajes de programación luce así:
do {
loop block statement to be executed;
}
while(condition);
Por ejemplo un bucle do while
en C luce así:
#include <stdio.h>
int main(void)
{
int i = 10;
do {
printf("the value of i: %i\n", i);
i++;
}
while( i < 20 );
}
Lo único en los bucles do while
, es que su código será ejecutado al menos una vez.
El código se ejecuta una vez, y luego la condición es verificada, solo después de la ejecución del código.
En otras palabras: El código se ejecuta una vez antes que nada, y solamente luego, el programa averigua si se cumple la condición.
Si la condición a evaluar resulta verdadero, el bucle continúa.
Hay casos en los que querrás que tu código se ejecute al menos una vez, y es aquí donde acaece la utilidad de este bucle.
Por ejemplo, cuando escribes un programa que recibe información de los usuarios, puedes solicitar solo un número positivo. El código se ejecutará al menos una vez. Si el número que envía el usuario es negativo, el ciclo seguirá funcionando (hasta que dé con un número positivo). Si es positivo, se detendrá.
Python no tiene una funcionalidad específica para crear un bucle do while
cómo otros lenguajes. Pero es posible emular un bucle do while
en Python.
Cómo emular un bucle do while
en Python
Para crear un bucle do while
en Python, necesitas modificar el bucle while
un poco con el propósito de obtener un comportamiento similar al de los bucles do while
en otros lenguajes.
Como resumen, el bucle do while
se ejecutará al menos una vez. Si la condición es verdadero se ejecutará otra vez.
El bucle while
, no se ejecutará a menos que la condición sea verdadero de lo contrario nunca se efectuará.
Recordado esto, supongamos un caso donde queremos que nuestra línea de código se efectúe al menos una vez. En este caso una contraseña o clave secreta.
palabra_secreta = "python"
counter = 0
while True:
palabra = input("Ingresa la palabra secreta: ").lower()
counter = counter + 1
if palabra == palabra_secreta:
break
if palabra != palabra_secreta and counter > 7:
break
El código se ejecutará al menos una vez, preguntando a la persona una palabra.
Está garantizado que al menos se efectuará una vez True
, de otra forma se crearía un bucle infinito.
Si la persona escribe la clave correctamente, el bucle se habrá terminado.
De otra manera, si la persona escribe la clave secreta de forma incorrecta más de siete veces, el bucle se terminará.
El estado break
nos permite controlar el flujo de ejecución del bucle while
para no acabar en un bucle infinito.
break
terminará la ejecución del bucle.
Es así cómo creamos un efecto similar al bucle do while
en Python.
Conclusión
Ahora sabes cómo crear un bucle do while
en Python.
Si te interesa Python, puedes ver 6 proyectos de Python Básicos en nuestro canal de freeCodeCamp en Español de YouTube. Tendrás que construir 6 proyectos y está orientado a principiantes.
freeCodeCamp también tiene una certificación gratuita de Python para ayudarte a comprender mejor este lenguaje.
Tendrás que construir 5 proyectos y poner en práctica lo que has aprendido.
Muchas Gracias por leer y ¡Feliz Aprendizaje!