2016-02-11 250 views
0

這裏是我的代碼AttributeError的:「builtin_function_or_method」對象有沒有屬性「流行」

def allButMax(): 
    input_list=[] 
    user_input = 0 
    num_sum = 0 
    max_num = 0 

    while user_input != "end": 
     input_list.append(float(user_input)) 
     user_input = input("Enter next number: ") 


    input_list = input_list[1:] 

    input_list = input_list.sort 


    input_listnew = input_list.pop(-1) 


    for num in input_list: 
    num_sum = num_sum + num 

    print("The num of all values except for the maximum value is: ", num_sum) 

當我運行程序時,它說

AttributeError: 'builtin_function_or_method' object has no attribute 'pop'

這個程序計算所有值的總和除了在該系列中的最大值進入

我不知道我在哪裏出了錯

回答

0

問題在於這一行

input_list = input_list.sort 

input_list.sort實際上並沒有被調用。您只需在input_list中存儲對該功能的引用,從而加入該列表。

sort是一個就地方法,它在列表本身上運行,而不是返回列表的新排序副本(請參閱sorted)。它返回None,因此您不應該嘗試從其返回值進行賦值。

input_list.sort() 
+0

正確更換

input_list = input_list.sort 

,但這個問題是題外話,它應該被關閉。錯誤是因爲*錯字*而引發的。我建議刪除這個答案並發表評論。 –

相關問題