Iain King <iaink...@gmail.com> wrote: > However, I assume you can get past the else by raising an exception, > so the idea becomes a little muddled - do you warn when there is no > break and no explicit raise caught outside the loop? What about an > implicit exception? I would guess that code intentionally using an > implicit exception to break out of a for loop is in need of a warning > (and the author in need of the application of a lart), but I'm sure > you could construct a plausible situation where it wouldn't be that > bad... > > Anyway, I'm ambivalently on the fence. > I think that in all cases of a for loop not containing break the following are exactly equivalent:
for expr: suite1 else: suite2 and for expr: suite1 suite2 If you exit from the loop by an exception or a return statement suite2 is not executed in either case. The only case where the else clause makes a difference is when you break from the loop. So a warning for 'else' following a breakless for loop is not entirely unreasonable as you can rewrite the code without the else. However, if Python were going to start generating warnings though I'd much rather see it warn or even error for accessing a guaranteed uninitialised local variable. -- http://mail.python.org/mailman/listinfo/python-list