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...这么离谱的东西

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