《构建可重复游玩的知识问答》是面向已掌握 Python 基础、希望制作可玩终端程序的学习者的实践项目。你将编写核心逻辑,从本地 JSON 题库抽题,在选项移动后仍正确识别答案,并将本轮错题变为独立的重练。
两个引导实验带你从回答已知题目,逐步走向保存和复用答题记录;一个独立挑战将相同机制应用于新的自然知识题库。每个单元都有独立准备的文件。
你将学到什么
- 抽取数量有限且不重复的题目,打乱完整选项对象,同时保持题库不变。
- 将屏幕上的答案序号映射到稳定的选项 ID,使每个答案始终归属正确的题目。
- 遇到非法输入时重新询问,退出时不把未回答的题目记为错误。
- 将已提交的题目和选项 ID 对保存到 UTF-8 JSON 文件。
- 只选择已回答的错题进行新一轮练习,正确处理没有错题的情况,并保留原始题库和记录。
本课程适合谁
本课程适合希望将熟悉的数据结构和函数组合成交互程序的 Python 学习者。
前置知识: Python 函数、列表、字典、条件和循环,以及基本终端操作和切换目录。引导实验会在使用前解释 JSON、文件操作、随机抽样、输入校验和提供的函数参数。
学习环境: 浏览器中的 WebIDE 提供编辑器、终端、Python、题库和程序外壳。你在 logic.py 中实现五个函数,保留预供的呈现引擎、命令行程序和题库。题目、界面标签和程序输出使用英文。
常见问题
需要安装软件或注册问答服务账号吗?
无需本地安装,也不需要外部问答账号。项目在准备好的环境中使用本地文件和 Python 标准库。
我要从零编写整个程序吗?
不用。你实现抽题、选项移动、输入处理、记录保存和错题筛选。预供引擎呈现题目和反馈,预供命令行程序读取文件并显示最终得分。
挑战与引导实验有什么不同?
你会在不同的自然知识题库中复用已学函数。即使不同题目出现相同文字或选项 ID,正确性仍须依照题目与选项的身份判断。同一程序还必须继续适用于原题库。
可以提前退出或全部答对吗?
可以。在回答前输入 q,该题不会记入记录。全部答对时,重练为空。使用新的记录路径可保留之前的记录。

