2017-07-21 45 views
-1

我被困在教授的任務上。它要求我執行以下操作:AttributeError是什麼:'tuple'對象沒有屬性'append',我該如何修復我的代碼?

使用Python編寫一個程序,該程序將對用戶對包含十個選擇題的駕照考試考試的答案進行評分。

問題1到問題的正確答案可以被存儲在列表稱爲correct_answers與這些初始值:

correct_answers = [ 'B', 'd', 'C', 'B','C ','D','A','B','D','A']

您的程序應該提示用戶輸入他/她的答案,以空格分隔。一旦用戶按下回車鍵,建立一個答案列表,實驗#5說明如何做到這一點。

如果你願意,你可以從列表中存儲你的答案,而不是從鍵盤上讀取它們。這將節省大量時間,因爲您在運行程序時無需輸入答案。儘管只是爲了測試目的,你應該改變你的答案。

一旦你有你的答案列表,將每個值與列表correct_answers比較,並保持多少是正確的計數。

最後,顯示10個正確答案的數量並顯示%。所以如果5個答案是正確的,你應該顯示5個正確的答案,那就是50%

另外請注意,你必須使用函數()來解決這個程序。

這裏是我的代碼:

def read_student(): 
    contents =() 
    for x in range (0,10): 
     data = input('Enter your answers for the 10 questions in a 
single line separated by a blank') 
     contents.append(data) 
    return contents 

def pass_fail(correct_answers, student_answers): 
    num_correct = 0 
    for i in range(0, len(correct_answers)): 
     if correct_answers[i] == student_answers[i]: 
      num_correct = num_correct + 1 

    print("You got %d answers correct" % num_correct) 
    percent_correct = (num_correct/10) * 100 
    print("The percentage of correct answers is %d" % 
percent_correct) 


correct_answers = ['B', 'D', 'C', 'B', 'C', 'D', 'A', 'B', 'D', 'A'] 
student_answers = read_student() 
pass_fail(correct_answers, student_answers) 

它口口聲聲說,5號線(contents.append(數據))有一個AttributeError的:「元組」對象有沒有屬性「追加」 ......如果只是不知道它是什麼意思或如何解決它。任何幫助/資源將不勝感激。謝謝:)

+1

'content'是一個'tuple'。你不能將'.append'添加到'tuple'。使用'list' –

回答

1

元組是不可變的數據類型意味着你不能改變它。 (有一些例外) 您可以做的一件事是將contents =()更改爲contents = []

+2

有什麼例外? –

+0

這工作。謝謝! :) –

+1

元組是不可變的,所以他們可以**不能**被改變,沒有例外。但是,如果元組包含可變對象,則可以對這些對象進行變異(但您仍然無法分配給它們)。 –

相關問題