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

Reply via email to