[Python-Dev] Announcing PEP 3136

Karen Tracey kmtracey at gmail.com
Fri Oct 2 20:46:29 CEST 2009


At 05:15 PM 9/30/2009, Yuvgoog Greenle wrote:
>I like how python has a minimalistic and powerful syntax (-1 for the 
>break ___ PEP).
>
>Also, I really dislike the for/else ambiguity "butterflies".
>
>When is the else after a loop executed?
>1. When the loop isn't entered at all.
>2. When the loop terminates through exhaustion of the list (does 
>this include when the list was empty?)
>3. When the loop didn't exit because of a break statement.
>
>HINTS: The way django does it is opposite the way python does it and 
>there may be more than one correct answer.

Django's template language does not have for/else, it has for/empty: 
<http://docs.djangoproject.com/en/dev/ref/templates/builtins/#for-empty>http://docs.djangoproject.com/en/dev/ref/templates/builtins/#for-empty

This construct did come from an external snippet that used 'else' 
instead of 'empty'.  However when it was integrated into Django the 
'else' name was specifically rejected because it did the opposite of 
what for/else does in Python.

Karen



More information about the Python-Dev mailing list