将带有计数器的 while 循环转换为更 pythonic 代码

Transform a while loop with counter into a more pythonic code

有没有办法将此 python 代码转换为更 python 的代码?

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

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

for i in range (10):
    do_something ()

这将执行函数 10 次。

我用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() 

第二个,我个人是这样做的:

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

    do_something()

注意: 通常应尽可能避免无限循环,但是,您知道更糟糕的是什么吗?手动计数器。特别是如果它们位于循环的底部。这就是为什么我把条件检查放在最上面,就在 for 循环语句下面。

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

for i in range(100):
   do_something()

并用所需的迭代次数替换 100