🔁 Capítulo 4: Repetición en Python (for y while)

Hasta ahora has aprendido a:

  • Guardar información (variables)
  • Tomar decisiones (if)

Pero hay algo que todavía estamos haciendo mal:

👉 repetir código a mano.

Y eso… en programación no es buena idea.

🧠 ¿Por qué repetir automáticamente?

Mira este ejemplo:

tobi = Sprite('Tobi')

tobi.say("Hola", 1)
tobi.say("Hola", 1)
tobi.say("Hola", 1)
tobi.say("Hola", 1)

👉 Funciona… pero es repetitivo y poco práctico.

👉 Para eso usamos bucles.

1. Repetir con for

El bucle for se usa cuando sabes cuántas veces quieres repetir algo.

tobi = Sprite('Tobi')

for i in range(4): # repite 4 veces
  tobi.say("Hola", 1) # se ejecuta en cada repetición

¿Qué significa?

  • for → repetir
  • range(4) → 4 veces
  • i → contador (Python lo usa internamente)

👉 Python repite el bloque automáticamente.

⚠️ Muy importante: indentación

for i in range(4):
  tobi.say("Hola", 1)

👉 Todo lo que está desplazado pertenece al bucle.

❌ Si no está bien indentado → error

2. Repetir mientras se cumpla algo (while)

El bucle while se usa cuando NO sabes cuántas veces se repetirá.

👉 Se repite mientras la condición sea verdadera.

contador = 0 # empezamos en 0

tobi = Sprite('Tobi')

while contador < 3: # mientras sea menor que 3
  tobi.say("Hola", 1)
  contador = contador + 1 # aumenta el contador

¿Qué está pasando?

  • Empieza en 0
  • Se repite mientras sea menor que 3
  • El contador sube cada vez

👉 Cuando llega a 3… se detiene.

⚠️ Error muy importante (bucle infinito)

while contador < 3:
  tobi.say("Hola", 1)

❌ Esto nunca se detiene

👉 Falta actualizar el contador

👉 Resultado: bucle infinito

3. Diferencia clave

  • for → sabes cuántas veces
  • while → depende de una condición

👉 Ambos son fundamentales.

🧠 Cómo piensa Python

En un bucle, Python hace esto:

  • Ejecuta el bloque
  • Vuelve a comprobar
  • Repite

👉 Hasta que se cumple la condición de salida.

🚀 Reto Abutuber: Contador en acción

Crea un programa donde:

  • Tobi diga los números del 1 al 5

Pista: usa una variable contador + while

Ver solución
contador = 1 # empezamos en 1

tobi = Sprite('Tobi')

while contador <= 5:
  tobi.say(contador, 1) # dice el número
  contador = contador + 1 # suma 1

💡 Consejo Abutuber: Si usas bucles bien, puedes hacer en 3 líneas lo que antes necesitaba 20.