为什么这个清单不能和?

时间:2014-05-02 00:00:14

标签: python list

在数学课上,我们正在学习'平均平均偏差'和计算器,我们没有任何应用程序来自动计算答案。所以为了帮助完成家庭作业,我一直在尝试制作一个脚本,所以我所要做的就是输入提供的元素。我将这些元素放入一个列表中,但是我在汇总列表时遇到了一个问题

    N = raw_input("Number of Elements: ")

Elements = []
'''
Phase 1
'''
while len(Elements) != int(N):
    item = raw_input("Element: ")
    Elements.append(item)
    print len(Elements)

Average = sum(Elements)

当我测试我的代码时,我收到一条错误

Traceback (most recent call last):
  File "C:\Users\ryan\Desktop\PythonTesting\MeanAverageData.py", line 12, in <module>
    print sum(Elements)
TypeError: unsupported operand type(s) for +: 'int' and 'str'

我做错了什么?

3 个答案:

答案 0 :(得分:1)

raw_input返回一个字符串。而是将raw_input更改为int(raw_input())

N = raw_input("Number of Elements: ")

Elements = []
'''
Phase 1
'''
while len(Elements) != int(N):
    item = raw_input("Element: ")
    Elements.append(item)
    print len(Elements)

Average = sum(Elements)

int(raw_input())只接受整数输入,否则会引发错误。

>>> int(raw_input('Enter your input: '))
Enter your input: 5 #Doesn't raise an error
>>> int(raw_input('Enter your input: '))
Enter your input: "Hello World!" #Does raise an error

答案 1 :(得分:0)

您必须首先将列表转换为浮点数(注意:这仅在所有字符串 可以转换为浮点数时才有效):

>>> print sum(map(float, Elements))

答案 2 :(得分:0)

更改

Elements.append(item)

Elements.append(int(item))

Elements.append(float(item))