【问题标题】:python time timer stuck on zeropython时间计时器卡在零
【发布时间】:2021-04-27 03:04:31
【问题描述】:

我正在尝试在 while 循环内的验证内启动计时器。

if(foo):
   start_time

我希望它打印增量时间,但它只打印零并即使在检查一次后仍继续计数。

代码:

warning_timer = 0

while True:
        if warning_timer == 0:
                start_time = time.time()
                warning_timer = 1
        elapsed_time = time.time() - start_time
        print(time.strftime("%H:%M:%S", time.gmtime(elapsed_time)))

输出:

00:00:00
00:00:00
00:00:00
00:00:00
00:00:00
00:00:00
00:00:00
00:00:00
00:00:00
00:00:00
00:00:00
00:00:00
00:00:00

如何使用时间库打印出增量时间?

【问题讨论】:

  • 您是否等待了 >1 秒?
  • 什么是“验证” - 请在您的问题中解释。

标签: python python-3.x validation time while-loop


【解决方案1】:

剪掉不必要的代码,在进入while True循环之前初始化start_time即可:

start_time = time.time()
while True:
        elapsed_time = time.time() - start_time
        print(time.strftime("%H:%M:%S", time.gmtime(elapsed_time))

注意您必须等待至少一秒钟才能超过 00:00:00 到 00:00:01

【讨论】:

  • 为了使其工作,start_time 必须在验证之后。即 if(foo){start_time}
  • 不,我不明白。你之前没有提到validation。请在您的问题中解释这一新要求。
  • 它是 OP 中的第一行“我正在尝试在 while 循环内的验证中启动计时器。”
  • 请在您的问题中解释“验证”是什么意思
  • if(foo){start_time}。如果是验证
【解决方案2】:

定时器在每次循环迭代中都会重置,所以只要把初始化放出来就可以了。

import time
warning_timer = 0

if warning_timer == 0:
    start_time = time.time()
while True:
        elapsed_time = time.time() - start_time
        print(time.strftime("%H:%M:%S", time.gmtime(elapsed_time)))

如果您需要在循环中多次使用启动计时器,问题是由于在开始和结束时间之间没有进行任何操作,因此不会显示经过的时间。你可以试试这个例子。

from random import randint
import time

warning_timer = 0

while True:
    if warning_timer == 0:
        start_time = time.time()
        time.sleep(randint(1, 4))
        elapsed_time = time.time() - start_time
        print(time.strftime("%H:%M:%S", time.gmtime(elapsed_time)))

【讨论】:

  • 谢谢。你的帖子让我知道我做错了什么。我看到你有一个新帐户,所以我会提供奖金。
  • 谢谢,我还添加了使用睡眠功能显示开始时间和结束时间之间经过的时间的示例。
  • 再次感谢您。 sleep里面的randint(1,4)的目的是什么?
  • 函数 randint 在第一个和第二个值之间生成一个随机值。在这种情况下,用于显示开始和结束间隔之间经过的随机时间。
  • 当我删除随机数时,我再次得到零。时钟通常是增量的,而不是随机的。
猜你喜欢
  • 2021-12-18
  • 1970-01-01
  • 1970-01-01
  • 2019-07-13
  • 1970-01-01
  • 1970-01-01
  • 2016-06-01
  • 1970-01-01
  • 2019-06-04
相关资源
最近更新 更多