I understand how this construct works:

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

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

```

But I don't understand why `else` is used as the keyword here, since it suggests the code in question only runs if the `for` block does not complete, which is the opposite of what it does! No matter how I think about it, my brain can't progress seamlessly from the `for` statement to the `else` block. To me, `continue` or `continuewith` would make more sense (and I'm trying to train myself to read it as such).

I'm wondering how Python coders read this construct in their head (or aloud, if you like). Perhaps I'm missing something that would make such code blocks more easily decipherable?

---

This question is about the *underlying design decision*, i.e. *why it is useful* to be able to write this code. See also [Else clause on Python while statement](https://stackoverflow.com/questions/3295938) for the specific question about *what the syntax means*.