2015-10-06 97 views
2

我的第一个函数使用数字列表(L)并找到平均值,它完美地工作。初始化一个列表并找到该列表的平均值

def mean(L): 
    x=sum(L) 
    print x/float(len(L)) 

在我的第二个功能,我想要求用户输入10个元素,它们初始化到一个列表,然后使用第一个函数平均值(L)来查找列表的平均值:

def Values(): 
    L=[raw_input('enter element ') for i in range (0,10)] 
    L=L[0::1] 
    print L[0::1] 
    print mean(L) 

,但我不断收到此错误信息:

TypeError: unsupported operand type(s) for +: 'int' and 'str' 
+0

题外话:浅拷贝列表的规范方式是'L [:]',而不是'L [0 :: 1]'。 '0'和'1'是隐含的,在Python 2中,实际上使用的是一个较慢的接口(带有'slice'的'__getitem__',而不是'__getslice__'和两个'C'级'ssize_t's)通过明确地通过该步骤。另外,你不需要像第一个那样简单地复制它,因为你永远不会改变它。 – ShadowRanger

回答

3

raw_input返回一个字符串。将其转换为数字类型像intfloat,...:

L = [float(raw_input('enter element ')) for i in range (3)] 

功能mean目前打印结果。最好将return作为结果,以便print mean(L)将打印结果而不是None