On Wed, 29 Jun 2016 11:41 am, jf...@ms4.hinet.net wrote: > Anyone who wrote the code below must be insane:-) > > for x in range(3): > print(x) > else: > print('I am done')
*shrug* Insane or not, it's legal. import math pass import os pass import sys is "insane" too, but still legal. The Python interpreter does not judge your code. > But here it seems perfectly OK: > > for x in range(3): > print(x) > if x == 1: break > else: > print('I am done') > > To me, the "else" was bonded with "break" (or return, or raise, or...), > not "for". It make sense:-) Just ten minutes ago I wrote code that looks like this: for x in sequence: try: do_something(x) except Error: continue # try again with the next item break else: default() The "else" in for...else has nothing to do with any "if" inside the for block. -- Steven “Cheer up,” they said, “things could be worse.” So I cheered up, and sure enough, things got worse. -- https://mail.python.org/mailman/listinfo/python-list