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

2024-04-18 15:55:52 发布

您现在位置:Python中文网/ 问答频道 /正文

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


Tags: 代码用户图形游戏时间后台计时器
2条回答

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

您可以使用Pythonthreading模块使两件事同时发生,从而允许用户在计时器计时的同时回答

一些示例代码利用了这一点:

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。希望这对你的项目有帮助!

尝试使用time.time()。这返回自1970年1月1日以来在UNIXTime中的秒数。然后可以创建while循环,以便:

initial_time = time.time()
while time.time()-initial_time < 45:
    #Code

希望这有帮助!

相关问题 更多 >