Can I suggest that for loops the `else` would be a lot clearer if it was spelt 
`finally` as was done for PEP-0341 for try blocks and that we might possibly 
need one or more `on_…` clauses such as `on_break` and `on_finish` I think that 
this would be a lot clearer:

for i in range(N):
    if i > 3:
        break;
on_break:  # Called if loop was broken
    print(i)
on_finish:  # Called if loop was not broken
    print("Loop Completed")
finally:  # Always called (replaces for…else)
    print("Loop Ended")

Which I think would be a lot easier for newcomers to learn than 
try…for…else…except…else e.g.:

try:
    for i in range(N):
       if i > 3:
            break;
       elif i % 2 == 0:
            raise ValueError("Odds Only");
        else: # to if
            print(i)
    else:  # Else to loop
        print("Loop Completed")
except ValueError as err:
    print(err)
else:  # to try
    print("No Exception")
finally:
    print("Try Ended")

Where the multitude of elses makes my eyes cross.



Steve Barnes
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/MKAAWV6OT7SRIHTDOAEA3OHV6ZLSGLE2/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to