我是 python 编程新手,我正在尝试应用我最近学到的概念。我正在阅读其他人的代码,找到了一个示例并对其进行了一些调整,如下所示。问题是当当前时间等于唤醒时间时,elif block 永远不会被触发。我已经在一个小的 if-else
语句中进行了测试,它工作正常,但从未在 while 循环
内触发。
请指教。
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!"
最佳答案
您仅更新 current_hour
和 current_month
,但在 elif
语句中您正在比较 current_time ==wake_time
。 current_time
值永远不会更新,并且无论用户输入什么,都将永远保留。在第一个 if
语句中,您应该更新 current_time
以便条件有意义。
关于python-闹钟建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46957536/