On 09/10/2022 03:33, Jach Feng wrote:
Axy 在 2022年10月8日 星期�
�上午11:39:44 [UTC+8] 的信中寫道:
Hi there,

this is rather a philosophical question, but I assume I miss something.
I don't remember I ever used else clause for years I was with python and
my expectation was it executed only if the the main body was never run.
Ha-ha! I was caught by this mental trap.

So, seriously, why they needed else if the following pieces produce same
result? Does anyone know or remember their motivation?

Just curious.

Axy.

print('--- with else')


for i in [1,2,3]:
     print(i)
else:
     print(4)

for i in []:
     print(i)
else:
     print(5)

print('--- without else')

for i in [1,2,3]:
     print(i)
print(4)

for i in []:
     print(i)
print(5)
The else is always coming with the break, not the for.
However, the compiler does not complain.
  There are [for ...], [for...break...], and[for...break...else],

That's implied and contradicts Zen of Python, I think. If "else" came with "break" there had to be a strong indication of that, namely indentation, as it takes place for all other statements with their clauses. However, there's no such an explicit connection between "break" and "else". That's the point.

Well, sorry for this addition to the discussion which went weird way. I should had to be cautious mentioning particular coding style, that's a totally different subject, actually. Let's close it at last.

  but the [for...else] is insane.
Not in Python.

Axy.
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to