简体   繁体   English

如何使用用户输入附加列表

[英]how to append list with user input

I have following code, that will ask user each month's rainfall, and append that to rainfall_inch list, and calculate average but i have two issues我有以下代码,它将询问用户每个月的降雨量,并将其附加到rainfall_inch列表中,并计算average但我有两个问题

1) after the user enters a number and next input runs, the previous entry shows behind the next input. 1) 在用户输入一个数字和下一个输入运行后,上一个输入显示在下一个输入后面。

"Enter rainfallJanuary  :  3
Enter rainfallFebruary 3 :  4"

and so on等等
2) problem is "' list ' object cannot be interpreted as an integer" with my code. 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()

help thank you帮助谢谢

Here, I've fixed some logic errors with your code, Look for comments so as to see where,在这里,我已经修复了您的代码的一些逻辑错误,请查找注释以查看位置,

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()

Outputs:输出:

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

I have removed range() like this我已经像这样删除了 range()

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

and found to be working without error并发现工作没有错误

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM