In: Computer Science
Design a program that lets the user enter the total rainfall for each of 12 months into an array. The program should calculate and display the total rainfall for the year, the average monthly rainfall, and the months with the highest and lowest amounts.
Requirements
You must use the given function prototypes. You can add more functions if you like.
def get_total_rainfall(months, months_len):
def get_average_monthly_rainfall(months, months_len):
def get_month_with_highest_rainfall(months, months_len):
def get_month_with_lowest_rainfall(months, months_len):
Design Considerations
Use a global parallel array of month names to associate with the monthly rainfall:
MONTH_NAMES = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
The function get_average_monthly_rainfall(months, months_len)may call the function get_total_rainfall(months, months_len
Use the techniques we’ve learned in class. Specifically, avoid (for now) the Python commands:
sum(t)
for index,month in enumerate(months):
Example Run
Please enter the rainfall for month [ January ]
15.5
Please enter the rainfall for month [ February ]
17.2
Please enter the rainfall for month [ March ]
18.0
Please enter the rainfall for month [ April ]
22.2
Please enter the rainfall for month [ May ]
15.9
Please enter the rainfall for month [ June ]
2.2
Please enter the rainfall for month [ July ]
0
Please enter the rainfall for month [ August ]
0
Please enter the rainfall for month [ September ]
2.1
Please enter the rainfall for month [ October ]
8.5
Please enter the rainfall for month [ November ]
12.0
Please enter the rainfall for month [ December ]
15.5
Total Rainfall: 129.10000000000002
Average Monthly Rainfall: 10.758333333333335
Month with highest rainfall: April
Month with lowest_rainfall: July
Hi,
Please find the answer below:
-------------------------------
Python Program:
## Function to get user input
def getInputFromUser(months,MONTH_NAMES,months_len):
for i in range(months_len):
months.append(float(input("Please enter the rainfall for month [" +
MONTH_NAMES[i] + "]\n")))
## Function to get total rainfall
def get_total_rainfall(months, months_len):
totalRain = 0
for i in range(months_len):
totalRain +=months[i] #
add month rainfalls
return totalRain
## Function to get average monthly rainfall
def get_average_monthly_rainfall(months, months_len):
return float(get_total_rainfall(months,
months_len)/months_len)
## Function to get higest rainfall month array index
def get_month_with_highest_rainfall(months, months_len):
highestRain = -99999 #arbitrary min value
highestArrayIndex = 0
for i in range(months_len):
if highestRain <
months[i]:
highestRain = months[i] #track highest rain
highestArrayIndex = i
return highestArrayIndex
## Function to get lowest rainfall month array index
def get_month_with_lowest_rainfall(months,months_len):
lowestRain = 99999 #arbitrary max value
lowestArrayIndex = -1
for i in range(months_len):
if lowestRain >
months[i]:
lowestRain = months[i] #traCL lowest rain
lowestArrayIndex = i
return lowestArrayIndex
## main function
def main():
#variables
months = []
months_len=12
MONTH_NAMES = ['January', 'February', 'March',
'April', 'May', 'June', 'July', 'August', 'September', 'October',
'November', 'December']
#Invoke to get user data for the rainfalls
getInputFromUser(months,MONTH_NAMES,months_len)
#Invoke functions and print data
print("Total Rainfall: " +
str(get_total_rainfall(months,months_len)))
print("Average Monthly Rainfall: " +
str(get_average_monthly_rainfall(months,months_len)))
largest =
get_month_with_highest_rainfall(months,months_len)
print("Month with highest rainfall: " +
MONTH_NAMES[largest])
smallest =
get_month_with_lowest_rainfall(months,months_len)
print("Month with lowest_rainfall: " +
MONTH_NAMES[smallest])
main()
Code Indentation Screen:
Sample Program Output:
Please enter the rainfall for month [January]
15.5
Please enter the rainfall for month [February]
17.2
Please enter the rainfall for month [March]
18.0
Please enter the rainfall for month [April]
22.2
Please enter the rainfall for month [May]
15.9
Please enter the rainfall for month [June]
2.2
Please enter the rainfall for month [July]
0
Please enter the rainfall for month [August]
0
Please enter the rainfall for month [September]
2.1
Please enter the rainfall for month [October]
8.5
Please enter the rainfall for month [November]
12.0
Please enter the rainfall for month [December]
15.5
Total Rainfall: 129.10000000000002
Average Monthly Rainfall: 10.758333333333335
Month with highest rainfall: April
Month with lowest_rainfall: July
Screenshot:
-------------------------------
Hope this helps.
Let me know if you need more help with this.
Kindly, like the solution, if you find it useful
Thanks.