On 23/07/2020 16:24, Stephen J.
Steven D'Aprano writes:
> On Wed, Jul 22, 2020 at 06:14:39AM +0300, Paul Sokolovsky wrote:
> > But no, loop executes, *or else* the following "else" block
> > executes ;-).
He means the loop *suite* executes (this includes "getting to" a break
statement or other control flow that leaves the loop *statement*
entirely), and if it doesn't, the else suite does. This is "why" such
nonlocal exits differ from finally in that they don't run the else suite.
I personally think this is a perfectly clear and convincing argument
for "else" as the keyword for this statement (once "suite" is added to
This is why programmers should major in English, and do a graduate
degree in programming if they really think they need a degree in
The upholders of the status quo regularly provide gallant
explanations of why "else" is perfectly natural, even intuitive.
The fact is, it isn't. If it were, it wouldn't *need*
repeatedly explained by gurus to lesser mortals. I can't think of
any other area of Python that needs to be defended so regularly and
so vociferously, nor that very experienced Python programmers
confess they find confusing. Swelp me, someone in this very thread
(Barry) misunderstood it. And suggesting that those of us who
don't find it clear lack skill in English is just plain insulting.