On Mar 8, 5:15 pm, "Terry Reedy" <[EMAIL PROTECTED]> wrote: > I gave a clear and coherent explanation of how while derives from if, > and correspondingly, how while-else derives from if-else, to help those who > want to read and write Python code. Building on the pseudo-snippet above, > one can write > > while loop_condition: > <loop statements> > if break_condition: > <break-only statements> > break > <more loop stuff> > else: > <completion-only statements> > > Python allows one to have both break-only and completion-only sections > together in one compound statement and *without* having to fiddle with a > special flag variable. I am sorry if you cannot appreciate such elegance > and can only spit on it as 'orwellian'.
Just to play Devil's advocate, there is one draw drawback to "such elegance": when there are multiple break statements. Which means you'd have to duplicate the break-only condition, or refactor somehow (which may or may not be suitable). There have been a couple occasions where I felt the best solution was to a temporary varible like so: completed = False while loop_condition: <loop statements> if break_condition: break <more loop stuff> if some_other_break_condition: break <more loop stuff> else: completed = False if not completed: <break-only statements> It felt icky but we're all still here so it couldn't have been that bad. Carl Banks -- http://mail.python.org/mailman/listinfo/python-list