for i in range(3):
if i == 1:
print(’第二次循环')
else:
print('for 循环结束')
print('i 值', i)
for i in range(3):
if i == 1:
print('第二次循环')
then:
print('for 循环结束')
print('i 值', i)
就很不理解,命名是 for...then...的意思,为什么要用 for...else...这么离谱的东西
1
mmm159357456 2022-08-11 16:20:52 +08:00
第一次看到 for...else 的时候我觉得是不是写错了,然后细看没写错
|
2
hsfzxjy 2022-08-11 16:21:41 +08:00 via Android
如果你 break 了,else 是不会执行的
|
3
just1 2022-08-11 16:25:54 +08:00
用途是处理自然 for 完毕而不是 break
语言真惨,这都被喷 |
4
lookStupiToForce 2022-08-11 16:28:09 +08:00
python 哲学,有些东西写出来就是避免任何人用的(狗头
你可以不理解,大家也都不理解 https://stackoverflow.com/questions/9979970/why-does-python-use-else-after-for-and-while-loops 换成 ifnobreak 就没任何歧义了,但现在没有这个关键字,所以要么忍着用并在 else 后加注释# nobreak ,要么别用 |
5
wxf666 2022-08-11 16:33:09 +08:00
难道是不想加太多关键词了?
then = 1 √ else = 2 × |
7
still97 OP @lookStupiToForce 是的,一定要用的话得加注释
|
8
ClericPy 2022-08-11 20:34:44 +08:00
当年 try else 更魔性
进来发现只是吐槽语义语法就没意思了 勉强能理解凑合了, 毕竟语言作者母语可能也不是纯英语, 平时重试啥的还是挺常用的, 除了能直接 return 的地方, 很多时候 break 是需要 ifbreak 判断的 |
9
yuruizhe 2022-08-11 21:49:10 +08:00 via iPhone
记得好像不建议用 for+else……
就像不建议用 goto ? |
10
lzjun 2022-08-12 00:53:29 +08:00
把他理解为 break ... else .. 就对了
|
12
spiritlin 2022-08-12 16:41:54 +08:00
当初看到这个语法也是非常迷,以至于一直搞反它的含义
|