for what are for/while else clauses

Mel Wilson mwilson at
Thu Nov 20 03:14:27 CET 2003

In article <mailman.787.1069069214.702.python-list at>,
"Fredrik Lundh" <fredrik at> wrote:
>for a while-statement, the controlling condition is the test at
>the top.
>for a for loop, the condition is "is there another item" (to quote the
>language reference: "When the items are exhausted (which is imme-
>diately when the sequence is empty) ... the loop terminates.".
>for a try-except clause, the condition is "did the suite raise an

   Interesting way to think about it.  Thanks.

   So in some sample code:

        while some_condition:
            some_action ()
            last_action ()
        following_code ()

If the loop results in some_action being done, say, 17
times; then that means that some_condition was found true 17
times.  The 18th time, some_condition is found to be false,
the else takes effect and last_action gets done one time.
The only wrinkle then is that the while loop construct
passes control to the following code after that one
last_action.  But we expect that from a while loop.

   The effect of a break in the suite controlled by the
while is to blow away execution of the whole while
construct, including the else.

   As an explanation, I like it.

        Regards.        Mel.

More information about the Python-list mailing list