You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 17:27:32