将带有计数器的 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
。
有没有办法将此 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
。