Lección 8 · 8 de 20
Repetir con while · Python
Repita código en Python con while mientras se cumpla una condición: ahorre para una bicicleta semana a semana y haga una cuenta atrás.

while repite su bloque mientras la condición sea verdadera. Antes de cada vuelta, Python vuelve a mirar savings < goal: con 0, 22, 44, 66 y 88 euros sigue; al llegar a 110 la condición es falsa y el bucle termina.
Dentro del bucle algo tiene que cambiar para que acabe alguna vez. week += 1 es una forma corta de week = week + 1, y savings += 22 suma el ahorro de la semana. Si nada cambiara, el bucle no terminaría nunca (un bucle infinito).
Al salir del bucle, las variables conservan su último valor: por eso se puede decir que se tardó 5 semanas y que sobran 10 euros.
La cuenta atrás hace lo contrario: empieza en 3 y resta con count -= 1 hasta que count > 0 deja de cumplirse. Entonces se ejecuta la línea sin sangría que va después: «Lift-off!».
Código · main.py
# Saving for a bike: add money every week until you have enough.goal = 100savings = 0week = 0while savings < goal: week += 1 # the same as week = week + 1 savings += 22 print(f"Week {week}: {savings} euros saved")print(f"Goal reached in {week} weeks!")print(f"Change left over: {savings - goal} euros")# A countdown: the loop stops when the condition becomes false.count = 3while count > 0: print(count, "...") count -= 1print("Lift-off!")Salida · python3 main.py
Week 1: 22 euros saved Week 2: 44 euros saved Week 3: 66 euros saved Week 4: 88 euros saved Week 5: 110 euros saved Goal reached in 5 weeks! Change left over: 10 euros 3 ... 2 ... 1 ... Lift-off!
Para recordar
while condición:repite mientras la condición seaTrue.- Algo del bucle tiene que acercarlo al final.
x += 1suma 1 ax;x -= 1le resta 1.- Si la condición es falsa desde el principio, el bloque no se ejecuta ninguna vez.
Ejercicio
Cambie el ahorro para que cada semana se guarde 5 euros más que la anterior (22, 27, 32…) y vea en cuántas semanas se llega a una bicicleta de 250 euros.