在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() 
+0

谢谢!我能够按照需要工作。 – evandewey

+0

如果我的答案适合您,请[接受它](http://*.com/help/someone-answers),并考虑对您之前的所有问题也做同样的事情。 – tzaman

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 
+0

谢谢。我想知道是否没有更简单的方法。 – evandewey

+0

哎呀,这个评论是为了第二个答案。 – evandewey

您不需要为此创建线程计时器。只需循环适当数量的随机数字即可:

import time 
import random 
for i in range(10): 
    print(random.randint(1,10), flush=True) 
    time.sleep(0.1)