Python时间。睡觉()在计时器程序中被忽略

2024-04-20 13:20:58 发布

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

在过去的几天里,我一直在尝试创建一个非常简单的计时器程序。 然而,我遇到了一个主要的障碍,在运行程序时,第二次延迟倒计时完全被忽略了。 我试过更换时间。睡觉(1) 与时间。睡觉(1000),在它所在的while循环中重新排列,但没有效果。只是在循环中没有延迟,也没有在循环中运行。在

import time
hour, minute, second = 1, 2, 10

print("Starting now.")
x = 1
while x < 2:
    print(str(hour) + ":" + str(minute) + ":" + str(second)) 
    time.sleep(1)
    second = second - 1
    if second == 0:
        minute = minute - 1
        second = second + 60
        if minute ==0:
            hour = hour - 1
            minute = minute + 60
            if hour == 0:
                x = x + 1

如果有人能弄明白这一点,那将是一个很大的帮助。谢谢您!在


Tags: import程序iftime时间计时器障碍print
1条回答
网友
1楼 · 发布于 2024-04-20 13:20:58

正如其他人所评论的,在原始问题中给出的代码在正确配置的环境中是正确睡眠的,这个答案通过使用datetime解决了时间处理中的逻辑问题。从时间中减去两个小时不提供时间差。在

import time, datetime,math

d = datetime.timedelta(hours=1,minutes=2,seconds=10)
endtime = (datetime.datetime.now()+ d)

    print("Starting now.")
    while datetime.datetime.now().time() <endtime.time():
        td = endtime - datetime.datetime.now()
        print(str(math.floor(td.seconds / 3600)) + ":" +
              str(math.floor(td.seconds / 60) - math.floor(td.seconds / 3600)*60 ) + ":" +
              str(td.seconds - math.floor(td.seconds / 60)*60) ) 
        time.sleep(1)

您还可以按照以下方式更正原始逻辑

^{pr2}$

相关问题 更多 >