DMarlon Studio

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.

Python · Repetir con while en DMarlon Studio: el código del ejemplo y su salida en la terminal

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 sea True.
  • Algo del bucle tiene que acercarlo al final.
  • x += 1 suma 1 a x; x -= 1 le 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.