我试图在Python 3中返回一个不断变化的变量,变量在while循环中,计数到指定的数字,将其值更改为零,然后重新开始.(例如,1,2,3,4,5,0,1,2,3,4,5,0 ......)这是我的代码:
global x run = True def count(l): x = 0 global run while run: x += 1 if x == l+1: x = 0 print(x)
当我运行count(5)
它打印了预期的效果,但1:我试图找到一种方式来不断地在后台运行该循环,和2:变量需要返回,不打印
GetCount()
让它返回所需的结果.
我已经尝试将此添加到函数的末尾:
try: return x finally: count(l)
但随后在比较期间超出最大递归深度时崩溃
所以我的问题是,1:有没有办法让x连续返回而没有达到最大递归深度?,2:如果有,是否还有一种方法count()
可以在后台运行,所以我可以获得x的当前值价值,如果是这样如何?
看起来itertools.cycle
可以帮忙:
import itertools as it c = it.cycle(range(6)) for x in range(10): print(next(c))
打印:
0 1 2 3 4 5 0 1 2 3
只是next(c)
用来得到下一个号码.
print(next(c))
现在打印:
4
因为我们3
之前停了下来.您可以使用以下方式设置ID值:
my_id = next(c)