我正在使用图形制作《谁想成为Python中的百万富翁游戏》。我希望用户每个问题有45秒的时间来回答。但是,每当我在代码中放置一个计时器时,它都会先等待45秒,然后让用户应答,而不是在后台运行并让用户同时应答。
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参见文档。希望这对您的项目有所帮助!