replacing `else` with `then` in `for` and `try`
Steve D'Aprano
steve+python at pearwood.info
Wed Nov 1 21:26:11 EDT 2017
On Thu, 2 Nov 2017 08:23 am, Ned Batchelder wrote:
> Apart from the questions of backward compatibility etc (Python is
> unlikely to ever go through another shift like the 2/3 breakage), are
> you sure "then" is what you mean? This won't print "end":
>
> for i in range(10):
> print(i)
> else:
> print(end)
You are neither the first nor the last person to have mistakenly understood
the "else" clause to run only if the main loop does not.
It is a common error. I've done it. And this demonstrates exactly why the
choice of keyword is so poor. If somebody of your experience can misread it,
I don't feel so bad about how long it too me to understand it when I was a
newbie.
--
Steve
“Cheer up,” they said, “things could be worse.” So I cheered up, and sure
enough, things got worse.
More information about the Python-list
mailing list