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
相关产品推荐
相关产品推荐

