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!