Aprende Python · lección gratuita
El bucle while repite un bloque de código mientras una condición sea verdadera. A diferencia de un if (que evalúa una sola vez), el while vuelve a comprobar la condición en cada vuelta y solo se detiene cuando esta pasa a ser False. Es la herramienta ideal cuando no sabes de antemano cuántas repeticiones harás, pero sí sabes bajo qué condición debes parar.
while condicion: ejecuta el bloque indentado una y otra vez mientras condicion sea True.i) que cambie dentro del bucle.False, tienes un bucle infinito (el programa nunca termina).break corta el bucle de inmediato; continue salta a la siguiente vuelta.El bucle while se lee casi como en lenguaje natural: "mientras se cumpla esto, haz aquello". Antes del bucle inicializas una variable; dentro del bucle haces el trabajo y, muy importante, modificas esa variable para que la condición termine cumpliéndose como False. Si olvidas ese paso, el bucle se repite para siempre.
i = 1
while i <= 3:
print("Vuelta", i)
i = i + 1 # sin esta línea, ¡bucle infinito!
print("Fin")
Un patrón muy frecuente es el acumulador: una variable que empieza en un valor neutro (0 para sumar, "" para concatenar) y va creciendo en cada vuelta. También puedes usar break para salir del bucle cuando se cumple una condición especial, o continue para saltarte el resto de la vuelta actual sin terminar el bucle.
suma = 0
n = 1
while n <= 5:
suma = suma + n # acumulamos
n += 1
print(suma) # 1+2+3+4+5 = 15
# 1) Contador descendente (cuenta regresiva)
n = 3
while n > 0:
print(n)
n -= 1
print("¡Despegue!")
# 2) Acumulador: sumar los primeros 4 números
suma = 0
i = 1
while i <= 4:
suma += i
i += 1
print("Suma:", suma) # 10
# 3) break: parar al encontrar el primer múltiplo de 7
x = 1
while x < 100:
if x % 7 == 0:
print("Primer múltiplo:", x)
break
x += 1
# 4) continue: imprimir solo los impares del 1 al 6
k = 0
while k < 6:
k += 1
if k % 2 == 0:
continue
print(k)
💡 Asegura siempre el avance. Antes de ejecutar unwhile, verifica que dentro del bucle haya una línea que acerque la condición aFalse(uni += 1, un cambio de bandera, etc.). Así evitas bucles infinitos.
| Sintaxis | Qué hace |
|---|---|
while cond: | Repite el bloque mientras cond sea True |
i = i + 1 / i += 1 | Avanza el contador (evita bucle infinito) |
total += valor | Acumulador (suma valores) |
texto += pieza | Acumulador de cadenas (concatena) |
break | Sale del bucle inmediatamente |
continue | Salta a la siguiente vuelta |
while True: ... break | Bucle controlado con salida por break |
---