Python 什么是AttributeError:';元组';对象没有属性';追加';如何修复我的代码?

Python 什么是AttributeError:';元组';对象没有属性';追加';如何修复我的代码?,python,python-3.x,attributes,Python,Python 3.x,Attributes,我被教授的作业缠住了。它要求我做到以下几点: 用Python编写一个程序,对用户的驾驶执照考试答案进行评分,该考试由十道选择题组成 问题1至问题的正确答案可存储在名为“正确答案”的列表中,并具有以下初始值: 正确答案=['B'、'D'、'C'、'B'、'C'、'D'、'A'、'B'、'D'、'A'] 您的程序应提示用户在一行中输入他/她对10个问题的答案,并用空格分隔。一旦用户按下Enter键,建立一个答案列表,Lab#5解释了如何做到这一点 如果愿意,您可以将答案存储在列表中,而不是从键盘上读

我被教授的作业缠住了。它要求我做到以下几点:

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

问题1至问题的正确答案可存储在名为“正确答案”的列表中,并具有以下初始值:

正确答案=['B'、'D'、'C'、'B'、'C'、'D'、'A'、'B'、'D'、'A']

您的程序应提示用户在一行中输入他/她对10个问题的答案,并用空格分隔。一旦用户按下Enter键,建立一个答案列表,Lab#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)

它一直在说第5行(contents.append(data))有一个AttributeError:“tuple”对象没有属性“append”…如果只是不确定它的意思或如何修复它的话。任何帮助/资源都将不胜感激。谢谢:)

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

Tuple is imutable数据类型意味着您无法更改它。(有例外)
您可以做的一件事是将
contents=()
更改为
contents=[]

content
是一个
元组。不能将
追加到
元组中。使用
列表
内容
是一个
元组
。不能将
追加到
元组中。使用
列表
什么异常?元组是不可变的,因此它们不能更改,没有异常。但是,如果元组包含可变对象,则可以对这些对象进行变异(但仍然无法分配给它们)。@juanpa.arrivillaga:此异常@Rahul说,
元组
没有变异。它包含与以前完全相同的对象。事实上,出现该错误的原因是,如果增广赋值运算符起作用,它可能会使
元组发生变异。请参阅PM2Ring的评论既然这个答案解决了问题,你应该。什么异常?元组是不可变的,所以它们不能更改,没有异常。但是,如果元组包含可变对象,则可以对这些对象进行变异(但仍然无法分配给它们)。@juanpa.arrivillaga:此异常@Rahul说,
元组
没有变异。它包含与以前完全相同的对象。事实上,出现该错误的原因是,如果增广赋值运算符起作用,它可能会使
元组发生变异。请参阅PM2Ring的评论。既然这个答案解决了问题,您应该这样做。