for/else、 while/else 和 try/else 大家用的多吗?

2019-01-31 17:36:42 +08:00
 WayToGo
因为与 if/else 的差别较大,会不会在实际工作中造成误解?
3561 次点击
所在节点    Python
24 条回复
ysc3839
2019-01-31 17:37:35 +08:00
用的不多。我认为不会。
zhoudaiyu
2019-01-31 18:17:00 +08:00
偶尔用
lniwn
2019-01-31 18:17:01 +08:00
《流畅的 Python 》中有谈到这个问题,个人觉得,这种用法对于一般人不会造成误解,对于专门研究语言的人,有可能会造成误解。这种用法已经是历史遗留问题,适应就好,不算奇巧淫技。
tiedan
2019-01-31 18:23:16 +08:00
try/else 偶尔会用
lihongjie0209
2019-01-31 18:27:58 +08:00
没这种写法之前怎么写代码? 代码不只是给自己看的, 也是给别人看的
WayToGo
2019-01-31 18:41:09 +08:00
@ysc3839 @zhoudaiyu @tiedan 谢谢回复
@lihongjie0209 嗯,同意
@lniwn 我也是在《流畅的 Python 》里看到的,对于 for/else 一开始我的理解是错误的。
书上的 for/else 例子
for item in my_list:
if item.flavor == 'banana':
break
else:
raise ValueError('No banana flavor found!')
junjieyuanxiling
2019-01-31 19:26:48 +08:00
知道,但是一次也没用过。
relic
2019-01-31 19:54:38 +08:00
经常用,超好用
Tink
2019-01-31 21:28:43 +08:00
我居然不知道
Hopetree
2019-02-01 00:30:28 +08:00
我只知道 try/else/finally for/else 和 while/else 我怎么没见过,能给我例子我见识一下吗
Hopetree
2019-02-01 00:31:42 +08:00
@WayToGo 这个能算 for/else 吗?这命名就是 if/else,只不过放在了 for 循环里而已,层级都不同好吧
thedrwu
2019-02-01 08:25:15 +08:00
其实从语感上说,那个不该叫 else,而应该叫 otherwise。
Qzier
2019-02-01 08:42:13 +08:00
基本很少有用
lniwn
2019-02-01 09:12:48 +08:00
@WayToGo 这个例子中,进入 else 就表示循环正常结束,而不是通过 break 结束。
marcong95
2019-02-01 09:39:30 +08:00
当年直接看官网 tutorial 学的 Python,感觉 for/else、while/else 挺好用的。但是工作中不用 Python,偶尔自己写一下的时候都很难想起来
XIVN1987
2019-02-01 09:40:11 +08:00
感觉挺好的,,其他语言也该加上
holyzhou
2019-02-01 09:49:20 +08:00
在用,用的还挺多的 记得<<编写高质量 python 代码的 59 个有效方法>>里面还有一节说,不建议用,我个人觉得还行
piqizhu
2019-02-01 09:51:50 +08:00
很少用
guanhui07
2019-02-01 10:01:05 +08:00
很少用
princelai
2019-02-01 10:02:38 +08:00
自从知道这个语法了解了以后,while/else 和 try/else 用的很多,非常好用,for/else 用的不多,不过看流畅的 python 里说好像的确不建议多用

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/532233

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX