循环在达到某个重复后会中断

时间:2014-11-03 18:10:15

标签: python

我似乎无法弄清楚我做错了什么。对python来说很新,所以可能会犯一些无知的错误

我试图在间隔后打印一个语句。范围是用户能够以设定的时间间隔打印通知。现在我把它们硬编码

以下是我的代码的样子

from datetime import datetime

def main():

    initial_time = datetime.now().replace(hour = 0, minute = 0, second = 0, microsecond = 0)

    class add_tm(object): #dynamic time adjustment
        x = 0 ## This will be a user input
        y = 1 ## This will be a user input
        z = 5 ## This will be a user input

    while True:
        now = datetime.now()
        if now > initial_time:
            print("Hello world")
            initial_time = now.replace(hour = now.hour + add_tm.x, minute = now.minute + add_tm.y, second = now.second + add_tm.z, microsecond = 0)

main()

问题是程序在第5次循环后停止执行。当它到达6号时,我得到了一个声明 initial_time = now.replace(hour = now.hour + add_tm.x,minute = now.minute + add_tm.y,second = now.second + add_tm.z,microsecond = 0) ValueError:分钟必须在0..59

我无法理解为什么我会这样做。我的意思是我有点得到它的意思,但不知道是什么导致它说

1 个答案:

答案 0 :(得分:5)

minute = now.minute + add_tm.y

显然导致值小于零或大于59

它不知道如何处理0到59范围之外的分钟值

print(now.minute + add_tm.y)

查看打破它的值