我正在使用图形制作一个想要成为Python百万游戏的人。我希望用户每个问题得到45秒来回答它。但是,每当我在我的代码中放置一个计时器时,它会先等待45秒,然后让用户回答,而不是在后台运行并让用户同时回答。
答案 0 :(得分: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
它并不完美,但是这段代码应该启动两个不同的线程,一个在终止程序之前45秒提出问题和一个时间。有关threading
的更多信息,请参阅the docs。希望这对您的项目有所帮助!
答案 1 :(得分:0)
尝试使用time.time()。这将返回自UNIXTime中1970年1月1日以来的秒数。然后,您可以创建一个while循环:
initial_time = time.time()
while time.time()-initial_time < 45:
#Code
希望这有帮助!