【发布时间】:2011-05-18 11:02:12
【问题描述】:
考虑下面的 C 代码:
for(int i=0; i<10 && some_condition; ++i){
do_something();
}
我想用 Python 写一些类似的东西。我能想到的最好的版本是:
i = 0
while some_condition and i<10:
do_something()
i+=1
坦率地说,我不喜欢模仿 for 循环的 while 循环。这是由于忘记增加计数器变量的风险。解决此风险的另一种选择是:
for i in range(10):
if not some_condition: break
do_something()
重要说明
some_condition并不是要在循环过程中计算,而是首先指定是否开始循环我指的是Python2.6
首选哪种风格?有更好的习惯用法吗?
【问题讨论】:
-
我认为这是个人喜好问题。
-
哪个版本的 Python?
-
我认为 Python 应该有一个类似
do <expr> times:的结构,以允许您明确表明您实际上不会使用循环计数器。 -
Karl:
for _ in range(10)似乎是一种常用的表示方式,但如果您碰巧使用 gettext,这当然是一个可怕的想法。
标签: coding-style python idioms