如何在Python选择题测验中添加答对后的知识点展示?
解决方案
步骤1:创建匹配的知识点字典
和你的questions字典对应,用完全相同的问题文本作为键,值存该题对应的知识点内容。比如:
# 英文版本 facts = { 'Who directed Underworld, Underworld Evolution?': 'Len Wiseman and Kate Beckingsale, who plays Underworlds heroine, Selene, married 1 year after the release of Underworld.' } # 中文翻译版本(对应你给出的示例) questions = { '谁执导了《黑夜传说》和《黑夜传说2:进化》?': 'b' } facts = { '谁执导了《黑夜传说》和《黑夜传说2:进化》?': '伦·怀斯曼与饰演《黑夜传说》女主角赛琳娜的凯特·贝金赛尔在《黑夜传说》上映一年后结婚。' }
步骤2:在答对分支中调用知识点
当用户答对题目时,在打印"Correct!"(或中文的"答对了!")之后,通过循环中的问题键i,从facts字典中取出对应知识点并打印。以下是修改后的完整代码:
英文版本完整代码
# 初始化分数和答对数量 score = 0 num_corr = 0 questions = { 'Who directed Underworld, Underworld Evolution?': 'a' } # 新增知识点字典 facts = { 'Who directed Underworld, Underworld Evolution?': 'Len Wiseman and Kate Beckingsale, who plays Underworlds heroine, Selene, married 1 year after the release of Underworld.' } for i in questions: print(i) # 补充打印选项,否则用户看不到选项内容 print("Options:") print("a. Louis Leteriere") print("b. Len Wiseman") print("c. Martin Campbell") print("d. James Wan") ans = input("Enter your answer (a/b/c/d): ") if ans == questions[i]: print("Correct!") # 取出并打印对应知识点 print(f"fact: {facts[i]}") score += 10 num_corr += 1 else: print("That is incorrect.") print(f"You got {num_corr} of {len(questions)} correct.") print(f"Your final score is: {score}")
中文版本完整代码
# 初始化分数和答对数量 score = 0 num_corr = 0 questions = { '谁执导了《黑夜传说》和《黑夜传说2:进化》?': 'b' } # 新增知识点字典 facts = { '谁执导了《黑夜传说》和《黑夜传说2:进化》?': '伦·怀斯曼与饰演《黑夜传说》女主角赛琳娜的凯特·贝金赛尔在《黑夜传说》上映一年后结婚。' } for i in questions: print(i) print("选项:") print("a. 路易斯·莱特里尔") print("b. 伦·怀斯曼") print("c. 马丁·坎贝尔") print("d. 温子仁") ans = input("请输入你的答案(a/b/c/d):") if ans == questions[i]: print("答对了!") # 取出并打印对应知识点 print(f"知识点:{facts[i]}") score += 10 num_corr += 1 else: print("答错了。") print(f"你答对了 {num_corr} 道题,总共 {len(questions)} 道题。") print(f"你的最终得分是:{score}")
关键注意点
- 知识点字典的键必须和问题字典的键完全一致,才能通过循环变量
i准确匹配到对应知识点。 - 原代码缺少打印选项的逻辑,补充后用户才能正常答题。
- 原代码中
score += 0和num_corr += 0可以直接删除,不影响逻辑且更简洁。
内容的提问来源于stack exchange,提问作者Joe
相关产品推荐
相关产品推荐

