首页 > 解决方案 > python时间计时器卡在零

问题描述

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

IE

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

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

标签: pythonpython-3.xvalidationtimewhile-loop

解决方案


计时器在每次循环迭代中都会重置,因此只需进行初始化就可以了。

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)))

推荐阅读