为什么我的警报代码最后没有打印该消息?

时间:2019-06-23 21:02:28

标签: python

所以我对Python还是很陌生,我正在尝试为计时器编写代码。我的代码应该获取小时,分钟,无论是上午还是下午,并显示一条消息,要求他们在计时器完成后将程序打印出来。到目前为止,该程序会询问几个问题并将其存储在变量中,但完成后不会打印出消息。

我尝试查看代码的每个部分,并且代码非常简单,所以我不明白为什么会这样。

# Set up variables
hour = int(input('What should the hour be? '))

minute = input('What should the minute be? ')

ampm = input('A.M. or P.M.? ')

if (ampm == 'A.M.'):
     if (hour == 12):
    hour = 0
    else:
         hour = hour

 if (ampm == 'P.M.'):
     if (hour == 12):
         hour = hour 
     else:
         hour = hour + 12

message = input('What should the message be? ')

import datetime

current_hour = datetime.datetime.today().strftime('%H')

current_minute = datetime.datetime.today().strftime('%M')

alarm = True

# Set up loop
while (alarm):
    if (hour != datetime.datetime.today().strftime('%H')):
      alarm = True
    else:
        if (minute == datetime.datetime.today().strftime('%M')):
          print(message)
          alarm = False
        else: 
            alarm = True

应该打印出用户输入的消息。不是那样的。

1 个答案:

答案 0 :(得分:0)

hour的变量返回一个int值,而datetime.datetime.today().strftime('%H')返回的字符串则使程序进入无限循环。更改条件如

        if (hour != int((datetime.datetime.today().strftime('%H')))):