Noob: Loops and the 'else' construct

Gabriel Genellina gagsl-py2 at
Fri Oct 19 05:11:18 CEST 2007

En Thu, 18 Oct 2007 23:44:27 -0300, Ixiaus <parnell.s at>  

> 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.

Gabriel Genellina

More information about the Python-list mailing list