<p><br>
On Jun 9, 2012 10:16 AM, "Terry Reedy" <<a href="mailto:tjreedy@udel.edu">tjreedy@udel.edu</a>> wrote:<br>
><br>
> On 6/8/2012 6:34 PM, Yuval Greenfield wrote:<br>
><br>
>>  > Loop statements may have an else clause; it is executed immediately<br>
>> after the loop but is skipped if the loop was terminated by a break<br>
>> statement.<br>
><br>
><br>
> As I said in my reply on pydev, that is misleading. The else clause executes if and when the loop condition is false. Period. Simple rule.<br>
><br>
> It will not execute if the loop is exited by break OR if the loop is exited by return OR if the loop is exited by raise OR if the loop never exits. (OR is the loop is aborted by external factors.) As far as else is concerned, there is nothing special about break exits compared to return or raise exits.<br>

><br>
> But Nick's doc addition and your alternative imply otherwise. One could read Nick's statement and your paraphrase as suggesting that the else will by executed if the loop is exited by return (like the finally of try) or raise (like the except of try). And that is wrong. </p>

<p>An else clause on a try statement doesn't execute in any of those cases either. I'm not assuming beginners are idiots, I'm assuming they're making a perfectly logical connection that happens to be wrong.</p>

<p>Cheers,<br>
Nick. </p>
<p>--<br>
Sent from my phone, thus the relative brevity :) <br>
><br>
> -- <br>
> Terry Jan Reedy<br>
><br>
><br>
> _______________________________________________<br>
> Python-ideas mailing list<br>
> <a href="mailto:Python-ideas@python.org">Python-ideas@python.org</a><br>
> <a href="http://mail.python.org/mailman/listinfo/python-ideas">http://mail.python.org/mailman/listinfo/python-ideas</a><br>
</p>