Python 什么是AttributeError:';元组';对象没有属性';追加';如何修复我的代码?
我被教授的作业缠住了。它要求我做到以下几点: 用Python编写一个程序,对用户的驾驶执照考试答案进行评分,该考试由十道选择题组成 问题1至问题的正确答案可存储在名为“正确答案”的列表中,并具有以下初始值: 正确答案=['B'、'D'、'C'、'B'、'C'、'D'、'A'、'B'、'D'、'A'] 您的程序应提示用户在一行中输入他/她对10个问题的答案,并用空格分隔。一旦用户按下Enter键,建立一个答案列表,Lab#5解释了如何做到这一点 如果愿意,您可以将答案存储在列表中,而不是从键盘上读取答案。这将节省大量时间,因为运行程序时不需要输入答案。你应该改变你的答案,只是为了测试 有了答案列表后,将每个值与正确答案列表进行比较,并记录有多少答案是正确的 最后,显示10个答案中正确答案的数量,并显示百分比。因此,如果有5个答案是正确的,则应显示5个正确答案,即50% 还要注意,您必须使用functions()来求解此程序 这是我的密码: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解释了如何做到这一点 如果愿意,您可以将答案存储在列表中,而不是从键盘上读
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的评论。既然这个答案解决了问题,您应该这样做。