所以现在,我得到了[3,3,3 ...] 18个值,这很好,因为这意味着我的if和for循环运行良好。唯一的问题是,我似乎无法弄清楚如何使for循环跳过不同的元素。
'#该程序将两个并行列表进行比较 '#多项选择考试。一个列表有考试解决方案 '#和第二个列表有学生的答案。 '# '#存储每个遗漏问题的问题编号 '#在第三个列表中。
'#您必须使用解决方案中提供的三个列表。 '#您的解决方案必须使用索引 '#不要编写任何其他用户定义的函数 '# - 在main函数中编写所有代码。 '#您不能在列表括号[]
中嵌入Python编程语句def main():
# do not modify this statement or contents of list
exam_solution = ['B', 'D', 'A', 'A', 'C', 'A', 'B', 'A', 'C', 'D', 'B', 'C',\
'D', 'A', 'D', 'C', 'C', 'B', 'D', 'A']
# do not modify this statement or contents of list
student_answers = ['B', 'D', 'B', 'A', 'C', 'A', 'A', 'A', 'C', 'D', 'B', 'C',\
'D', 'B', 'D', 'C', 'C', 'B', 'D', 'A']
# do not modify this statement, you must begin with an empty list
questions_missed = []
questions = int(len(exam_solution))
print(questions)
i= 0
for answers in range(0, questions):
if exam_solution[i] == student_answers[i]:
i += 1
else:
questions_missed.append(i+1)
print(questions_missed)
input('press enter to continue')
main()
' ##您的输出应如下所示: ' ## ' ##恭喜!你通过了考试
' ##您正确回答了17个问题,错误地回答了3个问题
' ##您回答错误的问题的数量是:3 7 14
' ##按enter键继续`
答案 0 :(得分:0)
if exam_solution[i] == student_answers[i]:
i += 1
else:
questions_missed.append(i+1)
应该是
if exam_solution[answers] == student_answers[answers]:
i += 1
else:
questions_missed.append(answers + 1)
如果您没有选择有意义的变量名称,这是一个很好的教训