Минимальный индекс не отображается, когда он вызывается - PullRequest
1 голос
/ 14 апреля 2020

Мы должны сделать так, чтобы пользователь мог вносить общее количество осадков за каждые 12 месяцев в список. Программа должна рассчитать и отобразить общее количество осадков за год, среднемесячное количество осадков

. Проблема: максимальное значение отлично, но минимальное значение застряло в 0

код:

Rainfall=[0]*13
i=1
total=0
print("Enter the Rainfall each month")
while i<=12:
    print('Month #',i, ': ',end=' ')
    Rainfall[i]=float(input())
    total+=Rainfall[i]

    i+=1
ave=total/12

High = max (Rainfall)
Low = min(Rainfall)


print("total Amount= ",total)
print("Average Average Amount {:0.2f}".format(ave))


print ("The months with the highest value are : ")
print ([i for i, j in enumerate(Rainfall) if j == High])
print ("The months with the Lowest value are : ")
print ([i for i, j in enumerate(Rainfall) if j == Low])

output:Enter the Rainfall each month
Month # 1 :  1
Month # 2 :  1
Month # 3 :  399
Month # 4 :  900
Month # 5 :  900
Month # 6 :  900
Month # 7 :  900
Month # 8 :  2323
Month # 9 :  42
Month # 10 :  100
Month # 11 :  10000
Month # 12 :  10000
total Amount=  26466.0
Average Average Amount 2205.50
The months with the highest value are : 
[11, 12]
The months with the Lowest value are : 
[0]

Process finished with exit code 0

Ответы [ 2 ]

0 голосов
/ 14 апреля 2020

В вашем массиве 13 элементов (не 12). Массивы начинаются с индекса 0, но вы начали заполнять его с 1.

Количество осадков [0] всегда равно 0

Настройте свой код. Изменить

Rainfall=[0]*12
i=0

....

while i<12
...
print('Month #',i+1, ': ',end=' ')
...
0 голосов
/ 14 апреля 2020

Вы не заполнили первый индекс в своем списке Rainfall, так как ваш l oop начинается с i = 1, но первый индекс списка равен 0 (и его значение равно 0).

Попробуйте это:

Rainfall=[0]*12
i=0
print("Enter the Rainfall each month")
while i<len(Rainfall):
    print('Month #',i, ': ',end=' ')
    Rainfall[i]=float(input())
    i+=1

total = sum(Rainfall)
ave=total/len(Rainfall)

High = max (Rainfall)
Low = min(Rainfall)


print("total Amount= ",total)
print("Average Average Amount {:0.2f}".format(ave))


print ("The months with the highest value are : ")
print ([i+1 for i, j in enumerate(Rainfall) if j == High])
print ("The months with the Lowest value are : ")
print ([i+1 for i, j in enumerate(Rainfall) if j == Low])

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...