On Tue, Mar 4, 2008 at 4:17 PM, Carl Banks <[EMAIL PROTECTED]> wrote: > > for ...: > > ... > > exhausted: > > ... > > broken: > > ... > > > > The meaning is explicit. While "else" seems to mean little there. > > So I may like something similar for Python 3.x (or the removal of the > > "else"). > > > I would not be opposed to this on its own merits, but there is a > rationale behind the name "else". If you consider a for loop to be a > rolled-up if...elif...else statement (situations where this is > reasonable tend to be the same ones were else would be useful), then > the "else" clause would remain unchanged on the for loop. > > For instance, if you have a (trivial) if...elif...else like this: > > if a == 0: > do_task_0() > elif a == 1: > do_task_1() > elif a == 2: > do_task_2() > else: > do_default_task() > > You could roll it up into a for...else statement like this: > > for i in range(3): > if a == i: > do_task[a]() > else: > do_default_task()
You forgot the break statement. The else suite will always be executed in this loop. Kind of proves bearophiles point, for-else is really tricky. -- mvh Björn -- http://mail.python.org/mailman/listinfo/python-list