编写一个以日期作为输入并输出日期的季节或无效的程序
Writing a program that takes a date as input and outputs the date's season or invalid
例如:如果输入是:
四月
11
输出是:Spring
此外,检查字符串和整数是否有效(实际的月份和日期)。例如:如果输入是:
蓝色的
65
输出是:无效
每个季节的日期是:
Spring:3 月 20 日 - 6 月 20 日
夏季:6 月 21 日 - 9 月 21 日
秋季:9月22日-12月20日
冬季:12 月 21 日 - 3 月 19 日
这是我的问题,除了在 30 日结束的月份(4 月、6 月、9 月和 11 月)外,一切正常。现在,如果我输入 June 31,输出应该是 'Invaild' 但它没有显示任何输出。我把我的代码放在下面,任何帮助将不胜感激。
month = input('Enter month: ')
day = int(input('Enter day: '))
months = [
'January', 'February', 'March', 'April', 'May', 'June',
'July', 'August', 'September', 'October', 'November', 'December'
]
if month not in months or (day <= 0) or (day > 31):
print('Invalid')
Spring
elif (month == 'March' and day >= 20 or month == 'April' and day <= 30 or \
month == 'May' and day or month == 'June' and day <= 20):
if (day <= 0) or (day > 31):
print('Invalid')
else:
print('Spring')
夏天
elif (month == 'June' and day >= 21 and day <= 30 or month == 'July'and day or \
month == 'August' and day or month == 'September' and day <= 21):
if (day <= 0) or (day > 31):
print('Invalid')
else:
print('Summer')
秋天
elif (month == 'September' and day >= 22 and day <= 30 or \
month == 'October' and day or month == 'November' and day <= 30 or \
month == 'December' and day <= 20):
if (day <= 0) or (day > 31):
print('Invalid')
else:
print('Autumn')
冬天
elif (month == 'December' and day >= 21 and day <= 31 or \
month == 'January' and day or month == 'February' and day or \
month == 'March' and day <= 19 and day >= 31):
if (day <= 0) and (day > 31):
print('Invalid')
else:
print('Winter')
在所有 elif
语句之后,添加最后一个 else
语句来捕获错误并将其作为 print("Invalid")
另外,请将 elif
语句中的各种 or
和 and
放在方括号内,这样就不会有 confusion/error 哪个先被选中。
请检查 pharse month == 'May' and day or month
...认为您错过了 day < 30
。这是所有 4 elif
语句
编辑
已按要求更新代码...
month = input('Enter month: ')
day = int(input('Enter day: '))
months = ['January', 'February', 'March', 'April', 'May', 'June',
'July', 'August', 'September', 'October', 'November', 'December']
if month not in months or (day <= 0) or (day > 31):
print('Invalid')
elif ((month == 'March' and day >= 20) or (month == 'April' and day <= 30) or \
(month == 'May') or (month == 'June' and day <= 20)):
if (day <= 0) or (day > 31):
print('Invalid')
else:
print('Spring')
elif ((month == 'June' and day >= 21 and day <= 30) or (month == 'July') or \
(month == 'August') or (month == 'September' and day <= 21)):
if (day <= 0) or (day > 31):
print('Invalid')
else:
print('Summer')
elif ((month == 'September' and day >= 22 and day <= 30) or \
(month == 'October') or (month == 'November' and day <= 30) or \
(month == 'December' and day <= 20)):
if (day <= 0) or (day > 31):
print('Invalid')
else:
print('Autumn')
elif ((month == 'December' and day >= 21) or \
(month == 'January') or (month == 'February' and day<=28) or \
(month == 'March' and day <= 19)):
if (day <= 0) and (day > 31):
print('Invalid')
else:
print('Winter')
else:
print("Invalid")
例如:如果输入是: 四月 11 输出是:Spring
此外,检查字符串和整数是否有效(实际的月份和日期)。例如:如果输入是: 蓝色的 65 输出是:无效
每个季节的日期是: Spring:3 月 20 日 - 6 月 20 日 夏季:6 月 21 日 - 9 月 21 日 秋季:9月22日-12月20日 冬季:12 月 21 日 - 3 月 19 日
这是我的问题,除了在 30 日结束的月份(4 月、6 月、9 月和 11 月)外,一切正常。现在,如果我输入 June 31,输出应该是 'Invaild' 但它没有显示任何输出。我把我的代码放在下面,任何帮助将不胜感激。
month = input('Enter month: ')
day = int(input('Enter day: '))
months = [
'January', 'February', 'March', 'April', 'May', 'June',
'July', 'August', 'September', 'October', 'November', 'December'
]
if month not in months or (day <= 0) or (day > 31):
print('Invalid')
Spring
elif (month == 'March' and day >= 20 or month == 'April' and day <= 30 or \
month == 'May' and day or month == 'June' and day <= 20):
if (day <= 0) or (day > 31):
print('Invalid')
else:
print('Spring')
夏天
elif (month == 'June' and day >= 21 and day <= 30 or month == 'July'and day or \
month == 'August' and day or month == 'September' and day <= 21):
if (day <= 0) or (day > 31):
print('Invalid')
else:
print('Summer')
秋天
elif (month == 'September' and day >= 22 and day <= 30 or \
month == 'October' and day or month == 'November' and day <= 30 or \
month == 'December' and day <= 20):
if (day <= 0) or (day > 31):
print('Invalid')
else:
print('Autumn')
冬天
elif (month == 'December' and day >= 21 and day <= 31 or \
month == 'January' and day or month == 'February' and day or \
month == 'March' and day <= 19 and day >= 31):
if (day <= 0) and (day > 31):
print('Invalid')
else:
print('Winter')
在所有 elif
语句之后,添加最后一个 else
语句来捕获错误并将其作为 print("Invalid")
另外,请将 elif
语句中的各种 or
和 and
放在方括号内,这样就不会有 confusion/error 哪个先被选中。
请检查 pharse month == 'May' and day or month
...认为您错过了 day < 30
。这是所有 4 elif
语句
编辑
已按要求更新代码...
month = input('Enter month: ')
day = int(input('Enter day: '))
months = ['January', 'February', 'March', 'April', 'May', 'June',
'July', 'August', 'September', 'October', 'November', 'December']
if month not in months or (day <= 0) or (day > 31):
print('Invalid')
elif ((month == 'March' and day >= 20) or (month == 'April' and day <= 30) or \
(month == 'May') or (month == 'June' and day <= 20)):
if (day <= 0) or (day > 31):
print('Invalid')
else:
print('Spring')
elif ((month == 'June' and day >= 21 and day <= 30) or (month == 'July') or \
(month == 'August') or (month == 'September' and day <= 21)):
if (day <= 0) or (day > 31):
print('Invalid')
else:
print('Summer')
elif ((month == 'September' and day >= 22 and day <= 30) or \
(month == 'October') or (month == 'November' and day <= 30) or \
(month == 'December' and day <= 20)):
if (day <= 0) or (day > 31):
print('Invalid')
else:
print('Autumn')
elif ((month == 'December' and day >= 21) or \
(month == 'January') or (month == 'February' and day<=28) or \
(month == 'March' and day <= 19)):
if (day <= 0) and (day > 31):
print('Invalid')
else:
print('Winter')
else:
print("Invalid")