Bucles while en Python

💡 ¿Qué es un bucle while?

Un bucle while repite un bloque de código
mientras una condición sea verdadera 🌀

Se usa cuando no sabemos cuántas veces se repetirá la tarea,
pero sí tenemos una condición de parada.

⚙️ Ejemplo básico

numero = 100

while numero > 0:
    print(numero)
    numero //= 2

⬇️ Salida:

100
50
25
12
6
3
1

💬 El bucle se repite mientras numero > 0. La operación //= divide el número entre 2 en cada paso.

🧩 Analizando el flujo

1️⃣ Python evalúa la condición numero > 0.

2️⃣ Si es True, ejecuta el bloque indentado.

3️⃣ Luego vuelve a evaluar la condición.

4️⃣ El ciclo continúa hasta que la condición sea False.

⚙️ Si nunca cambia, el bucle sería infinito.

🧠 Diferencia con el for

Característica for while
Itera sobre un objeto iterable (rango, lista, etc.) una condición lógica
Duración conocida desconocida
Riesgo de bucle infinito bajo alto si olvidas actualizar la condición

💬 Ejemplo del mundo real

Imaginemos un pequeño programa interactivo. Queremos que el usuario escriba comandos hasta que decida salir 🖥️

comando = ""

while comando != "salir":
    comando = input("👉 Escribe un comando: ")
    print("Eco:", comando)

💡 Este programa sigue pidiendo texto hasta que el usuario escriba "salir".

🧩 Problema de mayúsculas

¿Qué ocurre si el usuario escribe "SALIR" en mayúsculas? 🤔 El programa no termina, porque "salir" != "SALIR".

Podemos solucionarlo con el método .lower() 👇

comando = ""

while comando.lower() != "salir":
    comando = input("👉 Escribe un comando: ")
    print("Eco:", comando)

⬇️ Salida esperada:

👉 Escribe un comando: hola
Eco: hola
👉 Escribe un comando: SALIR
(Programa finalizado)

💬 .lower() convierte cualquier texto a minúsculas, garantizando que la comparación funcione correctamente.

⚙️ Resumen

Elemento Significado
while Ejecuta un bloque mientras la condición sea verdadera
break Detiene el bucle inmediatamente
.lower() Convierte texto a minúsculas
Condición de salida Debe cambiar dentro del bucle para evitar loops infinitos