2015-10-06 64 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