Cargando...

El bucle while

En la página anterior, for recorría valores que ya estaban listos: números de range, o las letras de tea. while no trae una lista hecha. Antes de las líneas con sangría, y antes de cada vuelta, también la primera, hace una pregunta. Si la respuesta es True, esas líneas se ejecutan. Si el número de dentro no cambia, la respuesta no pasa a False y el bucle no termina.

Deja cups en 0. La pregunta es cups < 3. El cero pasa, así que se escribe 0 y cups avanza uno. Lo mismo con 1 y luego con 2. Después de escribir 2, cups vale 3. La pregunta falla. El 3 no está en la pantalla. Quedó dentro de cups, y por eso falló la pregunta.

0, 1 y 2, y se detiene

python
cups = 0
while cups < 3:
    print(cups)
    cups = cups + 1

Ves tres líneas: 0, luego 1, luego 2. Tras el bucle, cups guarda 3. El propio bucle no imprime ese 3, porque print solo tiene turno si la pregunta pasó. Si quieres ver el 3, escribe print a la altura de while, fuera del bucle.

Ya fuera de límite, las líneas con sangría no entran

Pon cups en 3 antes de while. La primera pregunta falla enseguida. Las líneas de dentro no se ejecutan ni una vez. done está a la altura de while, así que no pertenece al bucle y se escribe una vez, cuando while ya decidió parar.

El bucle no entra, luego done

python
cups = 3
while cups < 3:
    print(cups)
    cups = cups + 1
print("done")

En la pantalla solo está done. Ningún número. print(cups) vivía dentro del bucle, y el bucle no llegó a empezar.

La línea cups = cups + 1 empuja el número hasta que la pregunta, al fin, falla. Quítala: cups se queda en 0, cups < 3 sigue en True, y 0 se escribe una vez y otra. El programa no sale de ese bucle.

Después de while hacen falta dos puntos, igual que en for y en if. Las líneas que se repiten van cuatro espacios más adentro. La palabra va en minúscula. While con W mayúscula es un nombre que Python no conoce, y el programa se detiene.

La página siguiente puede cortar antes

Esta página espera a que la propia pregunta sea False. La siguiente hace otra cosa: cortar el bucle, o saltar una vuelta, antes de que la pregunta falle sola.

Adivina primero

  1. cups empieza en 0 y la pregunta es cups < 3. ¿Qué números se escriben?
  2. Después del bucle, ¿qué número quedó en cups, aunque no se escribió?
  3. cups empieza en 3 y done está a la altura de while. ¿Qué aparece?
  4. Borras cups = cups + 1. ¿Termina el bucle?

Donde la gente se equivoca

  • Tomar el 3 final como una línea impresa
  • Esperar un número cuando cups ya es 3 antes de while
  • Olvidar cups = cups + 1 y esperar una última línea que no llega
  • Olvidar los dos puntos después de while
  • Escribir While con mayúscula

Qué te llevas

while pregunta antes de cada vuelta. Las líneas con sangría se ejecutan solo mientras la respuesta sea True.
Desde 0, con cups < 3, ves 0, 1 y 2. cups queda entonces en 3, y ese 3 no se imprime.
Si la pregunta ya es False, esas líneas no se ejecutan nunca, y una línea a la altura de while sí se ejecuta una vez.
Sin cups = cups + 1 la pregunta sigue en True y el bucle no termina.
La página siguiente puede cortar el bucle o saltar una vuelta.

🧠 Pon a Prueba tu Conocimiento

Listo para Empezar

Pon a Prueba tu Conocimiento

Ponte a prueba con este cuestionario interactivo y descubre qué tan bien entiendes el tema

❓
5
Preguntas
🎯
70%
Para Aprobar
♾️
∞
Tiempo
🔄
∞
Intentos

📝 Instrucciones

  • Lee cada pregunta cuidadosamente
  • Selecciona la mejor respuesta para cada pregunta
  • Puedes repetir el quiz tantas veces como quieras
  • Tu progreso se mostrará en la parte superior