The way I see it, else: fires when you iterate past the end of the loop.
If you break or return or raise you don't iterate past the end of loop, you stop immeadiately, and thus the else: block won't run. If you continue you still iterate past the end of loop, since continue just skips to the next iteration. It doesn't stop the loop.