使用计数器将while循环转换为更pythonic代码

时间:2015-03-26 19:40:34

标签: python while-loop

有没有办法将这个python代码转换为更pythonic的代码?

i = 0
while condition:
    doSomething()
    i+=1

3 个答案:

答案 0 :(得分:1)

如果条件是关于i的值,那么" i< 10",您可以使用" for"语句:

for i in range (10):
    do_something ()

这将执行该功能10次。

答案 1 :(得分:1)

我对此类型使用count

from itertools import count
c = count(0)
while condition:
    doSomething()
    next(c) # returns 0, +1 in further loops

但如果您知道自己需要多少循环,请尝试for loop

for i in range(n):
    doSomething() 

答案 2 :(得分:0)

到第二个itzmeontv's answer,我个人这样做:

for i in itertools.count():
    if not condition:
        break

    do_something()

注意:如果可能的话,通常应该避免无限循环,但是,你知道更糟糕的是什么吗?手动计数器。特别是如果它们位于循环的底部。这就是为什么我将条件检查置于for循环语句右下方的顶部。

但是,如果您知道需要多少次迭代,可以使用:

for i in range(100):
   do_something()

100替换为所需的迭代次数。