增强交互设计采用✅/❌符号直观反馈支持中文选项输入(自动转换大写)实时进度提示(第X题)健壮性保障输入验证机制(强制有效选项)异常处理(题库索引校验)状态重置(重启测试时)数据分析功能完整答题记录跟踪错题解析系统耗时统计(分钟:秒格式)import time import random QuizCLI: def __init__(self): # 完整题库(共20题) self.all_questions = [ { "question": "人工智能元年是哪一年?", "options": ["A. 1945年", "B. 1956年", "C. 1978年", "D. 2010年"], "answer": "B" }, { "question": "图灵测试的提出者是谁?", "options": ["A. 马文·明斯基", "B. 阿兰·图灵", "C. 杰弗里·辛顿", "D. 詹姆士·莱特希尔"], "answer": "B" }, { "question": "达特茅斯会议的主要贡献是?", "options": ["A. 发明了第一台计算机", "B. 提出了“人工智能”一词", "C. 开发了深度学习算法", "D. 设计了专家系统"], "answer": "B" }, { "question": "莱特希尔报告导致人工智能进入了哪个阶段?", "options": ["A. 第一次低谷", "B. 第二次低谷", "C. 第三次高潮", "D. 全面爆发期"], "answer": "A" }, { "question": "20世纪90年代人工智能的核心观念是?", "options": ["A. 神经网络", "B. 知识", "C. 深度学习", "D. 大数据"], "answer": "B" }, { "question": "日本第五代计算机计划失败的主要原因是?", "options": ["A. 资金不足", "B. 未突破关键技术", "C. 缺乏政策支持", "D. 市场需求低"], "answer": "B" }, { "question": "21世纪初人工智能爆发的主要技术推动力是?", "options": ["A. 符号推理", "B. 专家系统", "C. 深度学习", "D. 图灵测试"], "answer": "C" }, { "question": "我国将人工智能纳入“互联网+”战略的年份是?", "options": ["A. 1978年", "B. 2000年", "C. 2015年", "D. 2020年"], "answer": "C" }, { "question": "以下哪项是我国人工智能的领先领域?", "options": ["A. 量子计算", "B. 人脸识别", "C. 太空探索", "D. 核能技术"], "answer": "B" }, { "question": "专家系统的局限性不包括?", "options": ["A. 知识获取困难", "B. 推理能力不足", "C. 开发成本低", "D. 无法形式化所有知识"], "answer": "C" }, { "question": "人工智能第三阶段的特点不包括?", "options": ["A. 芯片化趋势", "B. 符号推理主导", "C. 深度学习突破", "D. 跨界融合"], "answer": "B" }, { "question": "阿兰·图灵在哪篇论文中提出“机器能否思考”?", "options": ["A. 《计算机器与智能》", "B. 《人工智能的未来》", "C. 《深度学习理论》", "D. 《知识表示与推理》"], "answer": "A" }, { "question": "第五代计算机计划的目标是构建?", "options": ["A. 超级计算机", "B. 并行推理机", "C. 量子计算机", "D. 神经网络芯片"], "answer": "B" }, { "question": "以下哪项属于我国人工智能的政策支持?", "options": ["A. 特洛伊咖啡壶计划", "B. 第五代计算机计划", "C. “互联网+”战略", "D. 莱特希尔报告"], "answer": "C" }, { "question": "深度学习的突破主要应用于哪个领域?", "options": ["A. 定理证明", "B. 机器翻译", "C. 计算机视觉", "D. 棋类博弈"], "answer": "C" }, { "question": "“知识大脑”概念的失败原因是?", "options": ["A. 计算性能不足", "B. 无法完整收集人类知识", "C. 缺乏专家参与", "D. 资金短缺"], "answer": "B" }, { "question": "我国在人工智能领域的学术团体包括?", "options": ["A. 中央神经系统学会", "B. 模式识别与机器智能", "C. 深度学习联盟", "D. 机器人伦理协会"], "answer": "B" }, { "question": "人工智能新阶段的趋势不包括?", "options": ["A. 硬件化", "B. 平台化", "C. 符号化", "D. 芯片化"], "answer": "C" }, { "question": "以下哪位是深度学习领域的领军人物?", "options": ["A. 阿兰·图灵", "B. 马文·明斯基", "C. 杰弗里·辛顿", "D. 詹姆士·莱特希尔"], "answer": "C" }, { "question": "我国人工智能芯片的代表产品是?", "options": ["A. 英特尔酷睿", "B. 华为昇腾", "C. 高通骁龙", "D. AMD锐龙"], "answer": "B" }] # 初始化变量 self.questions = [] self.current_question = 0 self.correct_answers = 0 self.start_time = 0 self.answer_records = [] def start_quiz(self): """ 启动新的测试 """ self.questions = random.sample(self.all_questions, 5) self.current_question = 0 self.correct_answers = 0 self.start_time = time.time() self.answer_records = [] self.run_quiz() def display_question(self, question_data): """ 显示题目及选项 """ print(f"\n【第{self.current_question + 1}题】{question_data['question']}") for option in question_data["options"]: print(f" {option}") return input("请输入选项字母(A/B/C/D):").upper() def validate_input(self, user_input): """ 验证用户输入有效性 """ while user_input not in ['A', 'B', 'C', 'D']: user_input = input("输入无效,请重新输入选项字母(A/B/C/D):").upper() return user_input def process_answer(self, user_choice, question_data): """ 处理用户答案 """ is_correct = user_choice == question_data["answer"] if is_correct: self.correct_answers += 1 print("✅ 回答正确!") else: print(f"❌ 回答错误,正确答案是 {question_data['answer']}") # 记录答题情况 self.answer_records.append({ "q_number": self.current_question + 1, "question": question_data["question"], "options": question_data["options"], "user_choice": user_choice, "correct_answer": question_data["answer"], "is_correct": is_correct }) def show_results(self): """ 显示最终结果 """ total_time = time.time() - self.start_time print("\n" + "="*40) print(f"测试完成!最终得分:{self.correct_answers*20}/100") print(f"正确率:{self.correct_answers/5*100:.1f}%") print(f"耗时:{int(total_time//60)}分{int(total_time%60)}秒") # 显示错题解析 wrong_answers = [r for r in self.answer_records if not r["is_correct"]] if wrong_answers: print("\n【错题解析】") for idx, record in enumerate(wrong_answers, 1): print(f"{idx}. 第{record['q_number']}题:{record['question']}") print(" 选项:" + " | ".join(record["options"])) print(f" 您的选择:{record['user_choice']}") print(f" 正确答案:{record['correct_answer']}\n") else: print("\n 恭喜!全部回答正确!") def prompt_restart(self): """ 重启提示 """ choice = input("\n是否重新测试?(Y/N): ").upper() if choice == "Y": self.start_quiz() else: print("感谢参与测试!") exit() def run_quiz(self): """ 主测试流程 """ for idx, question in enumerate(self.questions, start=1): self.current_question = idx - 1 # 保持索引从0开始 user_choice = self.display_question(question) validated_choice = self.validate_input(user_choice) self.process_answer(validated_choice, question) self.show_results() self.prompt_restart() if __name__ == "__main__": quiz = QuizCLI() quiz.start_quiz()