On Oct 19, 4:11 am, "Gabriel Genellina" <[EMAIL PROTECTED]> wrote: > En Thu, 18 Oct 2007 23:44:27 -0300, Ixiaus <[EMAIL PROTECTED]> > escribió: > > > I have just come across a site that discusses Python's 'for' and > > 'while' loops as having an (optional) 'else' structure. > > > At first glance I interpreted it as being a bit like the 'default' > > structure in PHP's switch block... But the switch block isn't a loop, > > so, I am now confused as to the reason for using 'else' with the for > > and while loops... > > > A few quick tests basically show that statements in the else structure > > are executed at the fulfillment of the loop's expression (ie, no > > break). > > A `while` loop tests a condition: if it evaluates to true, keep cycling; > if it is false, stop. The `else` clause is executed when the condition is > false, as in any `if` statement. If you exit the loop by using `break`, > the `else` part is not executed (because you didn't get out of the loop by > determining the condition falseness) > > You can think of a `for` loop as meaning `while there are remaining > elements to be iterated, keep cycling` and the `else` clause applies when > there are no more elements. A `break` statement does not trigger the else > clause because the iteration was not exhausted. > > Once you get the idea, it's very simple. > It's useful when you want to search for an item and to do something if you don't find it, eg:
for i in items: if is_wanted(i): print "Found it" break else: print "Didn't find ir"
-- http://mail.python.org/mailman/listinfo/python-list