🧭 Romper bucles y usar for-else

💡 Continuemos con el ejemplo anterior

Imaginemos que estamos reenviando un mensaje a un usuario 📩
y esta vez, el envío se logra con éxito en el primer intento.
Queremos detener el bucle inmediatamente.

⚙️ Simulando un envío exitoso

suceso = True

for intento in range(3):
    print("Intento", intento + 1)
    if suceso:
        print("✅ Mensaje enviado con éxito.")
        break

⬇️ Salida:

Intento 1
✅ Mensaje enviado con éxito.

💬 El bucle termina con break tan pronto como se cumple la condición.

🧱 Importancia de la indentación

Cada línea dentro del bloque for debe estar indentada con cuatro espacios.

for intento in range(3):
    print("Intento", intento + 1)
    if suceso:
        print("✅ Éxito.")
        break

🧠 Las líneas sangradas pertenecen al mismo bloque. Si no respetas la indentación, Python mostrará un error.

🔁 Cuando no hay éxito

Supongamos ahora que el envío nunca tiene éxito:

suceso = False

for intento in range(3):
    print("Intento", intento + 1)
    if suceso:
        print("✅ Éxito.")
        break
else:
    print("❌ Intentado tres veces y fallado.")

⬇️ Salida:

Intento 1
Intento 2
Intento 3
❌ Intentado tres veces y fallado.

💬 El bloque else del bucle solo se ejecuta si el bucle termina sin un break.

🔍 ¿Cómo funciona for-else?

1️⃣ Si el bucle se completa normalmente → se ejecuta el else. 2️⃣ Si el bucle termina con un break → el else se salta.

for intento in range(3):
    if intento == 1:
        break
else:
    print("Terminó sin break")

⬇️ Salida:

(nada)

⚙️ Como hubo un break, el else no se ejecuta.

🧠 En resumen

Palabra clave Significado
break Interrumpe un bucle antes de terminar
for-else Ejecuta el bloque else solo si no hubo break
indentación Define qué líneas pertenecen al bucle