AttributeError: 'tuple' object has no attribute 'append' 是什么意思以及如何修复我的代码?

Mic*_*ire 2 python attributes python-3.x

我被教授布置的作业困住了。它要求我执行以下操作:

用 Python 编写一个程序,对用户的驾驶执照考试答案进行评分,该考试由 10 道多项选择题组成。

问题 1 到问题的正确答案可以存储在名为 Correct_answers 的列表中,初始值如下:

Correct_answers=['B','D','C','B','C','D','A','B','D','A']

您的程序应提示用户在一行中输入 10 个问题的答案,并用空格分隔。用户按下 Enter 键后,将构建答案列表,实验 #5 会解释如何执行此操作。

如果您愿意,您可以存储列表中的答案,而不是从键盘读取答案。这将节省大量时间,因为您在运行程序时无需输入答案。您应该更改您的答案,但只是为了测试目的。

获得答案列表后,将每个值与正确答案列表进行比较,并记录正确答案的数量。

最后,显示 10 个答案中的正确答案数并显示百分比。因此,如果 5 个答案正确,您应该显示 5 个正确答案,即 50%

另请注意,您必须使用functions()来解决该程序。

这是我的代码:

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)
Run Code Online (Sandbox Code Playgroud)

它一直说第 5 行 (contents.append(data)) 有一个 AttributeError: 'tuple' object has no attribute 'append'...如果只是不确定它的含义或如何修复它。任何帮助/资源将不胜感激。谢谢 :)

Rah*_*hul 5

元组是不可变的数据类型意味着您无法更改它。(有一些例外)你可以做的一件事就是更改contents = ()contents = []

  • 什么例外? (2认同)