2016-08-09 8 views
1

私はループを実行しようとしています。時間が2倍になるかどうかをチェックしています。そのループは現在の時刻が更新されません。私は水槽のコントローラを作成しようとしている、それは異なる時間に3セットのライトを回す。あなたの助けのためのコードがループしている間にnow_timeが更新されない

感謝:)

from datetime import datetime, time 
now = datetime.now() 
now_time = now.time() 
SleepTimeL = 2 

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" 

答えて

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 time (9,30) <= now_time <= time (16,15): 
    print "yes, within the interval" 
    now_time = datetime.now().time() 
    print now_time 
    time.sleep(9) 
+0

あなたがの充てる私を保存..私はそれをしようとしていたが、それは間違ってやっていた、ありがとう時間 –

+0

@brandonevansあなたの問題を解決した場合、あなたは答えを受け入れることを検討するかもしれません:) –

0

は、あなたがしたい場合:

また、ループが唯一の指定された期間内で実行さと持続時間のサイクルのために再起動する必要があり、その場合にはwhile上の条件として比較を設定することができますループを行うには、whileを使用する必要があります。

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 
関連する問題