考虑以下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版本。
哪种风格更好?是否有更好的惯用语来实现这个?
for _ in range(10)
似乎是一种常见的表示方式,但如果你恰好在使用 gettext 的话,这当然是一个可怕的想法。 - Wooble