例如:如果输入是:
四月
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 许可协议
您有错误的代码行:
它应该是:
或者
正如下面提到的@Steven Rumbalski。
代码
input_month == 'July' or 'August'
的计算结果总是True
。因为它被解析为
(input_month == 'July') or ('August')
。Empty strings are considered
False
, and all other strings are consideredTrue
, so'August'
always evaluates toTrue
.