On Wed, Sep 30, 2009 at 5:15 PM, Yuvgoog Greenle <ubershmekel@gmail.com> 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

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

Karen