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

Python开发判断题答题系统遇阻:构建容器与5轮随机答题未达预期

Python 判断题答题程序实现方案

核心实现思路

  • 用字典存储题库,键为题目文本,值为正确答案(布尔类型)
  • 随机抽取5道不重复题目,避免重复出题
  • 逐题交互答题,校验用户输入格式,防止无效值
  • 记录每道题的答题细节,最后展示完整答题记录与总分

完整可运行代码

import random

# 判断题题库,可自行扩展题目
quiz_questions = {
    "Python是解释型编程语言": True,
    "列表在Python中是不可变类型": False,
    "字典的键必须是可哈希对象": True,
    "for循环仅能遍历序列类型": False,
    "Python函数可以返回多个值": True,
    "布尔值True等价于数值0": False,
    "字符串可使用单/双引号包裹": True,
    "try-except用于捕获处理异常": True
}

score = 0
quiz_records = []

# 随机选5道不重复题目
selected = random.sample(list(quiz_questions.items()), 5)

# 答题流程
for num, (q, ans) in enumerate(selected, 1):
    print(f"\n第{num}题:{q}")
    # 处理用户输入,确保格式正确
    while True:
        user_input = input("请输入答案(True/False 或 T/F):").strip().upper()
        if user_input in ("TRUE", "T"):
            user_ans = True
            break
        elif user_input in ("FALSE", "F"):
            user_ans = False
            break
        else:
            print("输入无效,请重新输入")
    
    # 判断答案并更新记录
    if user_ans == ans:
        print("回答正确!")
        score += 1
        quiz_records.append(f"第{num}题:{q} → 你的答案:{user_ans},正确答案:{ans},+1分")
    else:
        print("回答错误")
        quiz_records.append(f"第{num}题:{q} → 你的答案:{user_ans},正确答案:{ans},0分")

# 输出最终结果
print("\n" + "="*40)
print("答题详情:")
for record in quiz_records:
    print(f"- {record}")
print(f"\n最终得分:{score}/5")

代码关键说明

  • random.sample():从题库中随机选取指定数量的不重复元素,避免同一题目重复出现
  • 输入校验:通过循环确保用户输入的是有效答案格式,避免程序因非法输入报错
  • 答题记录:用列表存储每道题的答题细节,最终统一输出,清晰展示答题情况
  • 得分逻辑:每道题正确加1分,最终输出总分与满分的对比

内容的提问来源于stack exchange,提问作者Deepak Jadhav

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 01:35:18