hae*_*cut 2 python recursion counter
我试图在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)
Run Code Online (Sandbox Code Playgroud)
当我运行count(5)它打印了预期的效果,但1:我试图找到一种方式来不断地在后台运行该循环,和2:变量需要返回,不打印
GetCount()
Run Code Online (Sandbox Code Playgroud)
让它返回所需的结果.
我已经尝试将此添加到函数的末尾:
try:
return x
finally:
count(l)
Run Code Online (Sandbox Code Playgroud)
但随后在比较期间超出最大递归深度时崩溃
所以我的问题是,1:有没有办法让x连续返回而没有达到最大递归深度?,2:如果有,是否还有一种方法count()可以在后台运行,所以我可以获得x的当前值价值,如果是这样如何?
看起来itertools.cycle可以帮忙:
import itertools as it
c = it.cycle(range(6))
for x in range(10):
print(next(c))
Run Code Online (Sandbox Code Playgroud)
打印:
0
1
2
3
4
5
0
1
2
3
Run Code Online (Sandbox Code Playgroud)
只是next(c)用来得到下一个号码.
print(next(c))
Run Code Online (Sandbox Code Playgroud)
现在打印:
4
Run Code Online (Sandbox Code Playgroud)
因为我们3之前停了下来.您可以使用以下方式设置ID值:
my_id = next(c)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
245 次 |
| 最近记录: |