как добавить список с пользовательским вводом - PullRequest
0 голосов
/ 09 ноября 2018

У меня есть следующий код, который будет спрашивать пользователя о количестве осадков за каждый месяц, добавлять его в список rainfall_inch и вычислять average но у меня есть две проблемы

1) после того, как пользователь вводит число и запускает следующий ввод, предыдущая запись отображается за следующим вводом.

"Enter rainfallJanuary  :  3
Enter rainfallFebruary 3 :  4"

и т. Д.
2) проблема в том, что "list 'объект не может быть интерпретирован как целое число" с моим кодом.

def main():

    rainfall_inch = []

    name_month = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]


    for item in name_month:
        x = input()
        print("Enter rainfall" + item, x, ": ", end=' ')
        rainfall_inch.append(x)
    b = [float(x) for x in range(rainfall_inch)]


    print(b)

    print("average rainfall is:", computeAverage(b))

def computeAverage(values):
    #find average of rainfull
    total = 0.0
    for x in values:
        total+=x
    average = total/len(values)
    return average

main()

помогите спасибо

Ответы [ 2 ]

0 голосов
/ 09 ноября 2018

Здесь я исправил некоторые логические ошибки с вашим кодом, ищите комментарии, чтобы увидеть, где,

def main():

    rainfall_inch = []

    name_month = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]

    for item in name_month:
        print("Enter rainfall" + item, ": ", end=' ')
        x = input()
        if x == '':
            x = 0

        rainfall_inch.append(x) # you are appending here
    b = [float(i) for i in rainfall_inch] # so remove the range here, its wrong
    # range generates integers from a to b where a and b are integers
    print(b)

    print("average rainfall is:", computeAverage(b))

def computeAverage(values):
    #find average of rainfull
    total = 0.0
    for x in values:
        total+=x
    average = total/len(values)
    return average

main()

Выходы:

Enter rainfallJanuary :  40
Enter rainfallFebruary :  50
Enter rainfallMarch :  30
Enter rainfallApril :  60
Enter rainfallMay :  50
Enter rainfallJune :  30
Enter rainfallJuly :  330
Enter rainfallAugust :  20
Enter rainfallSeptember :  50
Enter rainfallOctober :  90
Enter rainfallNovember :  30
Enter rainfallDecember :  430
[40.0, 50.0, 30.0, 60.0, 50.0, 30.0, 330.0, 20.0, 50.0, 90.0, 30.0, 430.0]
average rainfall is: 100.83333333333333
0 голосов
/ 09 ноября 2018

Я удалил range () вот так

b = [float(x) for x in rainfall_inch]

и обнаружено, что оно работает без ошибок

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