[英]How to create a timer that resets for quiz games?
我试图为我的问答游戏创建一个计时器。 它应该在每个正确的问题后重置。 但是我的代码的问题是每次重置后它都会提高速度。
timeCount = 30
def countdown():
global timeCount
while timeCount > 0:
print(timeCount)
sleep(1)
timeCount -= 1
else:
print("Time Out!")
我认为这就是你想要做的:
import time
timeCount = 30
start = time.time()
seconds = 0
def countdown():
global timeCount
global seconds
while seconds < timeCount:
now = time.time()
seconds = now - start
print(timeCount - seconds)
else:
print("Time Out!")
countdown()
这教你如何使用time.time。 你可以拿走seconds
从timeCount
做一个计时器,从30下降到0。当seconds
打30,你可以结束循环并打印“超时”。 您可以截断不必要的浮点值,因为我假设浮点数在测验计时器上看起来不太好,而且也是不必要的。
seconds = int(seconds)
您可以使用函数 time.perf_counter() :
import time
start=time.perf_counter()
time.sleep(1) #you can replace the sleep function with the action you want to monitor
end=time.perf_counter()
print('elapsed time : ',end-start)
在上面的示例中, time.perf_counter() 评估调用它的时间,因此它为您提供两次调用之间经过的时间。
如果您想使用当前的逻辑:
您的“全局”语句意味着您将在代码执行期间修改“timeCount”变量。 要修复它,您可以在函数中使用一个新的局部变量(在下面的解决方案中称为“local_count”),就像这样,每次调用函数时都会重置倒计时:
import time
timeCount = 30
def countdown():
local_count = timeCount
while local_count > 0:
print(local_count)
time.sleep(1)
local_count -= 1
print("Time Out!")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.