On Wed, Feb 8, 2012 at 2:04 PM, Patrick Dempster <pa...@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 <silid...@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@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 _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor