Reputation: 17
Ex: If the input is:
April
11
the output is: Spring
In addition, check if the string and int are valid (an actual month and day).
Ex: If the input is:
Blue
65
the output is: Invalid
The dates for each season are:
Spring: March 20 - June 20
Summer: June 21 - September 21
Autumn: September 22 - December 20
Winter: December 21 - March 19
I linked my code and it doesn't work for these 2 inputs (and I can't figure out why)
1.for November 7, my output is "Summer" when it should be "Autumn"
2.for September 31, my output is "Summer" when it should be "Invalid"
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")
Upvotes: 0
Views: 59721
Reputation: 1
input_month = input()
input_day = int(input())
if input_month in ('April', 'May'):
print('Spring')
elif input_month in ('June','July', 'August'):
print('Summer')
elif input_month in ('October', 'November'):
print('Autumn')
elif input_month in ('January', 'March'):
print("Winter")
elif input_month == 'June' and (input_day == range(1, 20)):
print("Spring")
elif input_month == 'June' and (input_day == range(21, 30)):
print("Summer")
elif input_month == 'September' and (input_day == range(1, 21)):
print("Summer")
elif input_month == 'September' and (input_day == range(22, 30)):
print("Autumn")
elif input_month == 'December' and (input_day == range(1, 20)):
print("Autumn")
elif input_month == 'December' and (input_day == range(21, 31)):
print("Winter")
elif input_month == 'March' and (input_day == range(1, 19)):
print("Winter")
elif input_month == 'March' and (input_day == range(20, 31)):
print("Spring")
elif input_month == 'February' and (input_day == range(1, 28)):
print("Winter")
else:
print("Invalid")
Upvotes: -2
Reputation: 1
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")
Upvotes: 0
Reputation: 11
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>=30:
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")
#You did a good job on the code help_me_pls, just a couple of mistakes using the <> #This code now passes all tests.
Upvotes: -1
Reputation: 595
You have a wrong line of code:
elif input_month == 'July' or 'August':
It should be:
elif input_month == 'July' or input_month == 'August':
or
elif input_month in ('July', 'August')
As @Steven Rumbalski mentioned below.
The code input_month == 'July' or 'August'
always evaluates to True
.
As it is parsed as (input_month == 'July') or ('August')
.
Empty strings are considered False
, and all other strings are considered True
, so 'August'
always evaluates to True
.
Upvotes: 4