代码循环时now_time没有得到更新

时间:2016-08-09 00:58:01

标签: python

我正在尝试做一个循环,继续检查时间是否在2次之间..所以它会打开我的灯。但是它的循环当前时间没有得到更新。我试图创建一个水族箱控制器,在不同的时间变成3组灯。

感谢您的帮助:)

matrix <- function (x, y) {
   matrix <- x

   matrix
 }

2 个答案:

答案 0 :(得分:0)

您需要在循环中不断更新now_time

while True:
    if time (9,30) <= now_time <= time (16,15):
        print "yes, within the interval"
        now_time = datetime.now().time()
        print now_time
        time.sleep( 9 )
    else:
        print "no"

您可以使用chained comparison替换条件,这更具可读性。

您还可以将比较设置为while上的条件,在这种情况下,循环仅在指定的持续时间内运行,并且需要在持续时间的周期内重新启动:

while time (9,30) <= now_time <= time (16,15):
    print "yes, within the interval"
    now_time = datetime.now().time()
    print now_time
    time.sleep( 9 )

答案 1 :(得分:0)

如果你想做一个循环,你应该使用一个循环。

from  datetime import datetime, time
now = datetime.now()
now_time = now.time()
SleepTimeL = 2
print time(19,30)
print now_time
while True:
    if now_time >= time (9,30) and now_time <= time (16,15):
        print "yes, within the interval"
        print now_time
        time.sleep( 9 )
    else: print "no"

如果你想制作一个水族箱控制器,你应该检查每次迭代中的灯状态:

from  datetime import datetime, time
now = datetime.now()
now_time = now.time()
SleepTimeL = 2
print time(19,30)
print now_time
while True:
    if now_time >= time (9,30) and now_time <= time (16,15):
        if isLightOff: lightOn 
        time.sleep( 9 )
    else: if isLightOn: lightOff