Python 函数在计时器停止时运行?
我对编程真的很陌生,我正在尝试为幼儿创建一个数学测验。他们必须在60秒内回答尽可能多的问题。我有一个计时器和一个问题生成器 但问题是,我无法让它们同时运行,例如,程序等待1秒,询问问题,等待用户回答,然后继续使用计时器等。我希望计时器继续运行,而不是在回答问题时停止 这是我的计时器:Python 函数在计时器停止时运行?,python,function,math,testing,timer,Python,Function,Math,Testing,Timer,我对编程真的很陌生,我正在尝试为幼儿创建一个数学测验。他们必须在60秒内回答尽可能多的问题。我有一个计时器和一个问题生成器 但问题是,我无法让它们同时运行,例如,程序等待1秒,询问问题,等待用户回答,然后继续使用计时器等。我希望计时器继续运行,而不是在回答问题时停止 这是我的计时器: timer = 5 time.sleep(1) timer -= 1 我的问题是通过定义一个变量产生的(我把它缩短为加法): 从多处理库中尝试处理。检查另一个答案:中断输入()比应该的困难。让我们首先关注一个更简
timer = 5
time.sleep(1)
timer -= 1
我的问题是通过定义一个变量产生的(我把它缩短为加法):
从
多处理
库中尝试处理
。检查另一个答案:中断输入()
比应该的困难。让我们首先关注一个更简单的任务:您希望反复调用questions()
,直到总运行时间达到60秒或更长。您可以通过使用time.time()
测量时间来完成此操作,它返回自。。。一些随机的“时间零点”——没关系。代码:
start_time = time.time() # "now" at the start
while time.time() < start_time + 60: # "not 60 seconds later"
questions()
(在这个版本中不再需要
time.time()
)非常感谢,这真的很有帮助,我只需要弄清楚如何在dosignal.signal(signal.SIGALRM,my_func)还有30秒和10秒的时候播放声音。
;然后将调用函数my_func
,而不是Ctrl-C。最初在30秒后设置报警,然后函数播放声音并在20秒后设置下一个报警,依此类推。另一种选择是:不使用信号
,也可以执行线程。启动新线程(我的线程,())
。然后调用一次my_-thread()
,但并行调用(在不同的线程中)。它将time.sleep(30)
,播放声音,多睡一会儿,等等,最后它将调用thread.interrupt\u main()
。与前面的解决方案不同的是,myu-thread()
只调用一次,但可以在不暂停运行input()
的“主线程”的情况下休眠。
start_time = time.time() # "now" at the start
while time.time() < start_time + 60: # "not 60 seconds later"
questions()
try:
while True: # infinite loop, until interrupted
questions()
except KeyboardInterrupt:
pass # interrupted, now we're out of the loop