Ron Adam wrote: > So the (my) confusion comes from the tendency to look at it in terms of > overall program flow rather than in terms of the specific conditional > logic. > > In a for loop the normal, as in terminating normally, behavior of a loop > is one where the loop test evaluates as 'False' ending the loop. And > the abnormal or counter behavior is when a break statement executes. > Thus the 'else' block is the normal result, and the skipping the 'else' > block becomes the abnormal counter behavior.
a typical use-case for for-in-else is a search loop: for item in collection: if predicate(item): print "found", item break else: print "not found" return print "use", item where your "abnormal behaviour" is, of course, the expected behaviour. if you insist on looking at things the wrong way, things will look reversed. </F> -- http://mail.python.org/mailman/listinfo/python-list