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