我应该创建一个程序,它使用特定的降雨量(不要求用户输入数字)来输出每个月的降雨量、平均值、总量、最小值和最大值。我的程序应该是这样:
Austin Tx Rainfall 2009
Jan 0.40
Feb 0.94
Mar 3.21
Apr 3.74
May 1.73
Jun 1.03
Jul 1.27
Aug 2.58
Sep 6.98
Oct 6.90
Nov 2.80
Dec 2.53
Total 34.11
Average 2.84
Max 6.98
Min 0.40
到目前为止,这就是我所拥有的:
amount = []
total = 0
month = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']
am =[0.4,0.94,3.21,3.74,1.73,1.03,1.27,2.58,6.98,6.9,2.8,2.53]
for j in range(len(am)):
total+=j
print('Austin Tx Rainfall 2009')
print ("Month\t\tTotal Rainfall")
for i in range(len(month)):
print (month[i], "\t\t", amount[i])
#total
print ("Total:\t\t ", total)
#average
average = total/12
print ("Average:\t",average)
min=min(am)
max=max(am)
print("min:\t",min)
print("max:\t",max)
但是,当我运行它时,它返回如下:
print (month[i], "\t\t", amount[i])
IndexError: list index out of range
任何帮助都将不胜感激。*另一个问题,当我试图添加降雨量时,总降雨量会累积索引数,因此总数变成66(0+1+2+3+4+5+6+7+8+9+10+11)。我如何才能得到总数来添加实际数据?
发布于 2014-04-23 03:01:34
你的amount
是空的。你可能想
print (month[i], "\t\t", am[i])
发布于 2014-04-23 03:28:20
您的金额列表为空,您的总数应如下所示:
J在范围内(len(Am)):total=总计+ amj
发布于 2014-04-23 14:21:19
用一些重写:
COLUMNS = "{:<12} {:>4}".format
months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']
amounts = [0.4,0.94,3.21,3.74,1.73,1.03,1.27,2.58,6.98,6.9,2.8,2.53]
def main():
print('Austin Tx Rainfall 2009')
print(COLUMNS("Month", "Total Rainfall"))
for month, amount in zip(months, amounts):
print(COLUMNS(month, amount))
print(COLUMNS("Total:", sum(amounts)))
print(COLUMNS("Average:", sum(amounts) / len(amounts)))
print(COLUMNS("Min:", min(amounts)))
print(COLUMNS("Max:", max(amounts)))
main()
这给
Austin Tx Rainfall 2009
Month Total Rainfall
Jan 0.4
Feb 0.94
Mar 3.21
Apr 3.74
May 1.73
Jun 1.03
Jul 1.27
Aug 2.58
Sep 6.98
Oct 6.9
Nov 2.8
Dec 2.53
Total: 34.11
Average: 2.8425
Min: 0.4
Max: 6.98
https://stackoverflow.com/questions/23233983
复制相似问题