【问题标题】:how to append list with user input如何使用用户输入附加列表
【发布时间】:2019-04-12 16:28:30
【问题描述】:

我有以下代码,它将询问用户每个月的降雨量,并将其附加到 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()

帮忙谢谢

【问题讨论】:

  • x = input()更改为x = int(input())
  • 运行您的代码时,我在end=" " 得到一个SyntaxError - 因此我无法重现您的错误
  • @sudonym 您在 Python 2.x 中运行,而代码在 3.x 中。
  • 我明白 - 这应该在某处突出显示 IMO

标签: python python-3.x list loops input


【解决方案1】:

这里,我用你的代码修正了一些逻辑错误,找cmets看看哪里,

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

【讨论】:

  • 不知何故,当我运行它时,我仍然有错误提示“无法将字符串转换为浮点数:”
  • 也是为什么它在“:”之前有“rainfallNovember 20 : 25”,即“20”
  • @RainyDay 问题已经解决了,试试运行吧。
【解决方案2】:

我已经像这样删除了 range()

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

发现工作正常

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-09
    • 1970-01-01
    • 1970-01-01
    • 2018-02-09
    • 1970-01-01
    • 1970-01-01
    • 2015-01-12
    • 2020-12-01
    相关资源
    最近更新 更多