Python 函数在计时器停止时运行?

Python 函数在计时器停止时运行?,python,function,math,testing,timer,Python,Function,Math,Testing,Timer,我对编程真的很陌生,我正在尝试为幼儿创建一个数学测验。他们必须在60秒内回答尽可能多的问题。我有一个计时器和一个问题生成器 但问题是,我无法让它们同时运行,例如,程序等待1秒,询问问题,等待用户回答,然后继续使用计时器等。我希望计时器继续运行,而不是在回答问题时停止 这是我的计时器: timer = 5 time.sleep(1) timer -= 1 我的问题是通过定义一个变量产生的(我把它缩短为加法): 从多处理库中尝试处理。检查另一个答案:中断输入()比应该的困难。让我们首先关注一个更简

我对编程真的很陌生,我正在尝试为幼儿创建一个数学测验。他们必须在60秒内回答尽可能多的问题。我有一个计时器和一个问题生成器

但问题是,我无法让它们同时运行,例如,程序等待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()

非常感谢,这真的很有帮助,我只需要弄清楚如何在do
signal.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