Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中停止计时器_Python_Timer - Fatal编程技术网

在python中停止计时器

在python中停止计时器,python,timer,Python,Timer,我正在制作一个小的gag程序,将一组随机数输出到我的Ubuntu终端上,直到这些数字满足某个条件,在这个条件下,被授予的访问权被打印出来 但是,我想在满足该条件后停止计时器循环,我不知道如何停止 下面是代码: import random import threading def message(): tt = threading.Timer(0.125, message).start() num = str(random.randint(137849013724,9342348

我正在制作一个小的gag程序,将一组随机数输出到我的Ubuntu终端上,直到这些数字满足某个条件,在这个条件下,
被授予的访问权
被打印出来

但是,我想在满足该条件后停止计时器循环,我不知道如何停止

下面是代码:

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
def消息():
num=str(random.randint(13784901372434234850490))
打印(个)
如果数字[3]=“5”和数字[6]=“7”:
打印(“授权访问”)
其他:

threading.Timer(0.125,message).start()#
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
def消息():
num=str(random.randint(13784901372434234850490))
打印(个)
如果数字[3]=“5”和数字[6]=“7”:
打印(“授权访问”)
其他:

threading.Timer(0.125,message.start()#您不需要为此创建线程计时器。只需延迟循环适当数量的随机数:

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

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

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

非常感谢。如果我的答案对你有用的话,请考虑一下你以前的问题,谢谢。如果我的答案对你有用的话,请考虑一下你以前所有的问题。OOP,这个评论是为了第二个答案。OOP,这个评论是为了第二个答案。