在python中停止计时器
问题描述:
我正在做一个小小的gag程序,它将一堆随机数输出到我的Ubuntu终端上,直到数字满足特定条件,此时打印access granted
。在python中停止计时器
但是,我想停止定时器循环,一旦条件满足,我不知道如何。
这里的代码如下:
import random
import threading
def message():
tt = threading.Timer(0.125, message).start()
num = str(random.randint(137849013724,934234850490))
print(num)
if num[3] == "5" and num[6] == "7":
print("access granted")
message()
答
Timer
对象调用其功能一次延迟一段时间后,就是这样。有一个“循环”的原因是因为你告诉定时器调用的函数是设置下一次定时调用自己的函数。因此,只要满足条件,您就不需要这样做:
def message():
num = str(random.randint(137849013724,934234850490))
print(num)
if num[3] == "5" and num[6] == "7":
print("access granted")
else:
threading.Timer(0.125, message).start() # <== moved
答
您不需要为此创建线程计时器。只需循环适当数量的随机数字即可:
import time
import random
for i in range(10):
print(random.randint(1,10), flush=True)
time.sleep(0.1)
谢谢!我能够按照需要工作。 – evandewey
如果我的答案适合您,请[接受它](http://stackoverflow.com/help/someone-answers),并考虑对您之前的所有问题也做同样的事情。 – tzaman