3 回答

TA贡献1982条经验 获得超2个赞
您可以设置一个字典来记录与相应月份的雨,然后您可以使用字典找到min和max使用相关的月份 valueskeys
def enter_rainfall():
months_list = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
rain_fall = {i: 0 for i in months_list}
for k in rain_fall:
rain_fall[k] += float(input('Please enter the amount of rain for {}: '.format(k)))
return rain_fall
def low_High(dicta):
all_rain = [v for v in dicta.values()]
low = ([k for k in dicta if dicta[k] == min(all_rain)], min(all_rain))
high = ([k for k in dicta if dicta[k] == max(all_rain)], max(all_rain))
return low, high
x = enter_rainfall()
low, high = low_High(x)
print(low, high)
Please enter the amount of rain for January: 10
Please enter the amount of rain for February: 11
Please enter the amount of rain for March: 12
Please enter the amount of rain for April: 10
Please enter the amount of rain for May: 22
Please enter the amount of rain for June: 18
Please enter the amount of rain for July: 1
Please enter the amount of rain for August: 9
Please enter the amount of rain for September: 2
Please enter the amount of rain for October: 22
Please enter the amount of rain for November: 8
Please enter the amount of rain for December: 10
(['July'], 1.0) (['May', 'October'], 22.0)
如果两个或更多个月的降雨量与max或min所有相应月份的降雨量相同,则返回列表中

TA贡献1843条经验 获得超7个赞
当您调用 时low_High,您实际上并没有传入您的月份列表 ( month_list)。相反,您应该这样称呼它:low_High(rain, months_list)。当你打印最小值和最大值时,你可能想同时打印月份和值——现在,你用最小值和最大值打印月份。
def low_High(rain, months_list):
low_val = min(rain)
low_month = months_list[rain.index(low_val)]
high_val = max(rain)
high_month = months_list[rain.index(high_val)]
print('{month} had the least amount of rain with {val}'.format(month=low_month, val=low_val))
print('{month} had the most amount of rain with {val}'.format(month=high_month, val=high_val))
如果您想在提示用户时跟踪月份,您可以在循环访问数组时通过修改enter_rainfall:
def main():
...
rain = enter_rainfall(month_list)
...
def enter_rainfall(month_list)
for month in month_list:
rain_amount = float(input('Please enter the amount of rain for {month}:'.format(month=month),))
rain_fall.append(rain_amount)
...

TA贡献1789条经验 获得超8个赞
该print和return可以接受多回报和打印字符串。您不需要限制数量。
你只需要main像那样改变。
def enter_rainfall():
rain_fall = []
months = 12
for months_list in range(months):
rain_amount = float(input('Please enter the amount of rain:',))
rain_fall.append(rain_amount)
print(months_list,rain_amount)
# it will print corresponding month and its rain amount.
return(rain_fall)
添加回答
举报