繁体   English   中英

如何创建一个为问答游戏重置的计时器?

[英]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。 你可以拿走secondstimeCount做一个计时器,从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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM