On Sun, 7 Aug 2016 08:05 am, Lawrence D’Oliveiro wrote: > On Saturday, August 6, 2016 at 12:08:30 PM UTC+12, bream...@gmail.com > wrote: >> A couple or three years old but this is well worth seeing for anybody, >> regardless of your Python expertise. >> http://nedbatchelder.com/text/iter.html > > A loop like > > for i in ... : > ... > if ... cond ... : > break > ... > #end for > > actually has two different ways to terminate. Is there any good reason for > them to be written two different ways?
Yes. The two ways of ending the loop are distinct and different: - reach the end, and stop; - bail out early. When you read a book, there are two ways of stopping: - reach the end, and run out of pages to read, so you stop; - give up reading early, and just put the book away. (Or possibly throw the book across the room.) Why would you treat these two cases in the same way? interested = True for page in book: if interested: read(page) if bored_now(): interested = False finished = False while not finished: try: page = next(book) except StopIteration: finished = True else: read(page) if bored_now(): finished = True -- Steve “Cheer up,” they said, “things could be worse.” So I cheered up, and sure enough, things got worse. -- https://mail.python.org/mailman/listinfo/python-list