3.3 Bucle While y Control

El bucle While ("mientras") ejecuta un bloque de código una y otra vez siempre que la condición que le demos sea True. Es muy útil cuando no sabemos de antemano cuántas veces necesitaremos repetir algo.

1. La estructura While

Ten cuidado: si la condición nunca deja de ser verdadera, crearás un "bucle infinito" y el programa no parará nunca. Debemos asegurarnos de que algo cambie dentro del bucle.

cuenta_atras.py
distancia = 5

while distancia > 0:
    print("Faltan " + str(distancia) + " metros para el contenedor...")
    distancia = distancia - 1  # Reducimos la distancia

print("¡Has llegado a la Zona Cero!")

2. Un validador de códigos real

Este es el uso más común en herramientas de geocaching: preguntar una palabra clave hasta que el usuario acierte.

validador.py
respuesta = ""
solucion = "PINO"

while respuesta != solucion:
    respuesta = input("Introduce la palabra clave del cartel: ").upper()
    
    if respuesta != solucion:
        print("Error. ¡Sigue buscando en el tronco!")

print("¡CORRECTO! Las coordenadas finales son N 40... W 003...")

3. Interrumpir el bucle: Break

A veces queremos salir de un bucle inmediatamente si ocurre algo especial. Usamos la palabra break.

🧩 Reto: El número secreto

Copia este código en el área de la izquierda. Es un juego donde tienes que adivinar un número del 1 al 10. Si te cansas, escribe "0" para salir gracias al break:

secreto = 7
while True:
    intento = int(input("Adivina el número (0 para rendirse): "))
    if intento == secreto:
        print("¡Increíble! Eres un gran geocacher.")
        break
    if intento == 0:
        print("Te has rendido. El número era el 7.")
        break
    print("Prueba otra vez...")

Pulsa "Ejecutar" y comprueba cómo el programa se mantiene vivo en la consola derecha hasta que aciertas o sales.