如何制作一个在后台运行的倒数计时器,它在程序用完时终止程序?

时间:2016-01-16 00:58:29

标签: python

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

2 个答案:

答案 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

希望这有帮助!