如何使倒数计时器在后台运行,从而在程序用完时终止程序?

pyt*_*eek -2 python

我正在使用图形制作《谁想成为Python中的百万富翁游戏》。我希望用户每个问题有45秒的时间来回答。但是,每当我在代码中放置一个计时器时,它都会先等待45秒,然后让用户应答,而不是在后台运行并让用户同时应答。

Mat*_*hew 5

使用threading模块一次运行多个线程

你可以使用Python threading模块,使两件事情发生一次,从而使用户接听,而计时器滴答下来。

一些利用此示例代码:

from threading import Thread
from time import sleep
import sys

def timer():
    for i in range(45):
        sleep(1)   #waits 45 seconds
    sys.exit() #stops program after timer runs out, you could also have it print something or keep the user from attempting to answer any longer

def question():
    answer = input("foo?")

t1 = Thread(target=timer)
t2 = Thread(target=question)
t1.start() #Calls first function
t2.start() #Calls second function to run at same time
Run Code Online (Sandbox Code Playgroud)

这不是完美的方法,但是这段代码应该启动两个不同的线程,一个线程问一个问题,另一个线程在终止程序之前45秒钟超时。有关更多信息,请threading参见文档。希望这对您的项目有所帮助!