¿Por qué Python usa 'else' después de los bucles for y while?

Entiendo cómo funciona esta construcción:

for i in range(10):
    print(i)

    if i == 9:
        print("Too big - I'm giving up!")
        break;
else:
    print("Completed successfully")

Pero no entiendo por quéelsequí se usa @ como palabra clave, ya que sugiere que el código en cuestión solo se ejecuta sifor@ block no se completa, que es lo contrario de lo que hace! No importa cómo lo piense, mi cerebro no puede progresar sin problemas desde lafor declaración a laelse bloque. A mi,continue ocontinuewith tendría más sentido (y estoy tratando de entrenarme para leerlo como tal).

Me pregunto cómo los codificadores de Python leen esta construcción en su cabeza (o en voz alta, si lo desea). ¿Quizás me estoy perdiendo algo que haría que tales bloques de código sean más fácilmente descifrables?

Respuestas a la pregunta(42)

Su respuesta a la pregunta