我是python编程的新手,我正在尝试应用我最近学到的概念。我正在阅读其他代码,并找到了一个示例并稍微调整一下,如下所示。问题是当当前时间等于唤醒时间时,elif
块永远不会被触发。我已经在一个小if-else
语句中测试过,它运行正常,但永远不会在while loop
内触发。
请告知。
import time
import subprocess
wake_hour = int(raw_input("Wake hour: "))
wake_minute = int(raw_input("Wake minute: "))
wake_time = [wake_hour, wake_minute]
current_hour = int(time.strftime("%H"))
current_minute = int(time.strftime("%M"))
current_time = [current_hour, current_minute]
while True:
if current_time != wake_time:
current_hour = int(time.strftime("%H"))
current_minute = int(time.strftime("%M"))
print current_hour, current_minute
print wake_hour, wake_minute
elif current_time == wake_time:
audio_file = "/Users/dcasteli/Documents/emergency018.mp3"
play = subprocess.call(["afplay", audio_file])
print "Wake up!"
答案 0 :(得分:3)
您只是更新current_hour
和current_minute
,但在elif
语句中您正在比较current_time == wake_time
。 current_time
值永远不会更新,并且将永远保留用户输入的任何内容。在第一个if
语句中,您应该更新current_time
,以便条件有意义。