编写一个程序,将日期作为输入并输出日期的季节

新手上路,请多包涵

例如:如果输入是:

四月

11

输出是:弹簧

此外,检查字符串和整数是否有效(实际的月份和日期)。例如:如果输入是:

蓝色的

65

输出是:无效

每个季节的日期是:

春季:3 月 20 日 - 6 月 20 日

夏季:6 月 21 日 - 9 月 21 日

秋季:9月22日-12月20日

冬季:12 月 21 日 - 3 月 19 日

我链接了我的代码,但它不适用于这两个输入(我不知道为什么)

1.对于 11 月 7 日,我的输出是“夏季”,而它应该是“秋季”

2.对于 9 月 31 日,当它应该是“无效”时,我的输出是“夏季”

 input_month = input()
input_day = int(input())
months= ('January', 'February','March', 'April' , 'May' , 'June' , 'July' , 'August' , 'September' , "October" , "November" , "December")

if not(input_month in months):
    print("Invalid")

elif input_month == 'March':
    if not(1<=input_day<=31):
        print ("Invalid")
    elif input_day<=19:
        print("Winter")
    else:
        print ("Spring")
elif input_month == 'April' :
    if not(1<=input_day<=30):
        print("Invalid")
    else:
        print("Spring")
elif input_month == 'May':
    if not(1<=input_day<=31):
        print("Invalid")
    else:
        print("Spring")
elif input_month == 'June':
    if not(1<=input_day<=30):
        print("Invalid")
    elif input_day<=20:
        print ("Spring")
    else:
        print("Summer")
elif input_month == 'July' or 'August':
    if not(1<=input_day<=31):
        print("Invalid")
    else:
        print("Summer")
elif input_month == 'September':
    if not(1<=input_day<=30):
        print("Invalid")
    elif input_day<=21:
        print ("Summer")
    else:
        print ("Autumn")
elif input_month == "October":
    if not(1<=input_day<=31):
        print("Invalid")
    else:
        print("Autumn")
elif input_month == "November":
    if not(1<=input_day<=30):
        print("Invalid")
    else:
        print ("Autumn")
elif input_month == "December":
    if not(1<=input_day<=31):
        print("Invalid")
    elif input_day <=20:
        print ("Autumn")
    else:
        print ("Winter")
elif input_month == 'January':
    if not(1<=input_day<=31):
        print("Invalid")
    else:
        print("Winter")
elif input_month == "February":
    if not(1<=input_day<=29):
        print("Invalid")
    else:
        print ("Winter")

原文由 help_me_pls 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.5k
2 个回答

您有错误的代码行:

 elif input_month == 'July' or 'August':


它应该是:

 elif input_month == 'July' or input_month == 'August':

或者

elif input_month in ('July', 'August')


正如下面提到的@Steven Rumbalski。

代码 input_month == 'July' or 'August' 的计算结果总是 True

因为它被解析为 (input_month == 'July') or ('August')

Empty strings are considered False , and all other strings are considered True , so 'August' always evaluates to True .

原文由 ThRnk 发布,翻译遵循 CC BY-SA 4.0 许可协议

input_month = input()
input_day = int(input())

months= ('January', 'February','March', 'April' , 'May' , 'June' , 'July' ,
'August' , 'September' , "October" , "November" , "December")

if not(input_month in months):
    print("Invalid")

elif input_month == 'March':
    if not(1<=input_day<=31):
        print ("Invalid")
    elif input_day<=19:
        print("Winter")
    else:
        print ("Spring")
elif input_month == 'April' :
    if not(1<=input_day<=30):
        print("Invalid")
    else:
        print("Spring")
elif input_month == 'May':
    if not(1<=input_day<=31):
        print("Invalid")
    else:
        print("Spring")
elif input_month == 'June':
    if not(1<=input_day<=30):
        print("Invalid")
    elif input_day<=20:
        print ("Spring")
    else:
        print("Summer")
elif input_month == 'July' or input_month == 'August':
    if not(1<=input_day<=31):
        print("Invalid")
    else:
        print("Summer")
elif input_month == 'September':
    if not(1<=input_day<=30):
        print("Invalid")
    elif input_day<=21:
        print ("Summer")
    else:
        print ("Autumn")
elif input_month == "October":
    if not(1<=input_day<=31):
        print("Invalid")
    else:
        print("Autumn")
elif input_month == "November":
    if not(1<=input_day<=30):
        print("Invalid")
    else:
        print ("Autumn")
elif input_month == "December":
    if not(1<=input_day<=31):
        print("Invalid")
    elif input_day <=20:
        print ("Autumn")
    else:
        print ("Winter")
elif input_month == 'January':
    if not(1<=input_day<=31):
        print("Invalid")
    else:
        print("Winter")
elif input_month == "February":
    if not(1<=input_day<=29):
        print("Invalid")
    else:
        print ("Winter")

原文由 Maggie 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题