如何编写函数按位置对比两个列表元素并输出结果?
实现题目与答案的逐位对比函数
很容易就能实现这个需求,我们可以利用Python的enumerate函数来同时获取题目序号和对应的答案,然后逐一对用户提交的答案和正确答案进行对比,输出对应的对错提示。
完整实现代码
def check_answers(question, solution): # 用enumerate遍历,start=1让题目序号从1开始计数 for q_num, (user_ans, correct_ans) in enumerate(zip(question, solution), start=1): if user_ans == correct_ans: print(f'Q {q_num}: {user_ans}, correct answer') else: print(f'Q {q_num}: {user_ans}, wrong answer is {correct_ans}') # 示例用法 question = ['a', 'b', 'c', 'd'] solution = ['c', 'b', 'c', 'a'] check_answers(question, solution)
代码说明
zip(question, solution)会把两个列表中对应位置的元素配对,比如第一个配对是('a', 'c'),第二个是('b', 'b'),以此类推,确保我们能逐位对比。enumerate(..., start=1)用来生成从1开始的题目序号,完全符合日常做题的计数习惯。- 每次循环中判断用户答案和正确答案是否相等,分别输出正确或错误的提示信息,格式完全匹配你给出的示例要求。
运行结果
运行上面的代码后,会输出:
Q 1: a, wrong answer is c Q 2: b, correct answer Q 3: c, correct answer Q 4: d, wrong answer is a
内容的提问来源于stack exchange,提问作者chloe ong
相关产品推荐
相关产品推荐

