[Tutor] (no subject)

Joel Goldstick joel.goldstick at gmail.com
Wed Feb 8 23:21:35 CET 2012


On Wed, Feb 8, 2012 at 2:04 PM, Patrick Dempster
<paddy at paddy-dempster.org.uk> wrote:
> On 07/02/2012 19:07, Hugo Arts wrote:
>> On Tue, Feb 7, 2012 at 7:50 PM, Debashish Saha <silideba at gmail.com> wrote:
>>> for i in range(1, 8):
>>>    print(i)
>>>    if i==3:
>>>        break
>>> else:
>>>    print('The for loop is over')
>>>
>>>
>>>  Output:
>>> 1
>>> 2
>>> 3
>>>
>>> Question:but after breaking the for loop why the else command could not work?
>>>
>> because the else statement was designed to be that way:
>>
>> http://docs.python.org/reference/compound_stmts.html#for
>>
>> quoting the relevant part:
>>
>> "When the items are exhausted (which is immediately when the sequence
>> is empty), the suite in the else clause, if present, is executed, and
>> the loop terminates.
>>
>> A break statement executed in the first suite terminates the loop
>> without executing the else clause’s suite."
>>
>> in short, the else clause only executes if you do *not* break out of the loop.
>
> I might be missing something but I can't see a reason for the "else:"
> clause attached to the "for" statement, could anyone provide an example
> where or why someone might use the "else:" clause with the for loop?
>
> P.
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor


Here is and interesting article:
http://nedbatchelder.com/blog/201110/forelse.html

The else clause runs if the loop breaks for some reason.  So you would
use it only to do some processing if the loop completes completely.
-- 
Joel Goldstick


More information about the Tutor mailing list