python闹钟建议

时间:2017-10-26 14:53:01

标签: python time

我是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!"

1 个答案:

答案 0 :(得分:3)

您只是更新current_hourcurrent_minute,但在elif语句中您正在比较current_time == wake_timecurrent_time值永远不会更新,并且将永远保留用户输入的任何内容。在第一个if语句中,您应该更新current_time,以便条件有意义。