闪卡学习应用
Zee 嘿,听我说。我六周后有推进系统的考试,通过自测的方式我学得更好。你能做一个闪卡应用吗?从文件加载卡片,给我显示正面,我输入答案,它告诉我答对了没有。还要能保存我的进度,这样我可以从上次停下的地方继续。拜托啦 🙏
你要构建的内容
Deck: python-basics.json (12 cards)
Front: What does len() return for a string?
Your answer: the number of characters
Correct!
Front: What type does input() always return?
Your answer: int
Incorrect. The answer is: str
---
Session complete: 8/12 correct.
Progress saved.你将需要
- 类与对象 — 用
Card类和Deck类可以干净地建模数据 - 文件与异常 — 从 JSON 文件加载和保存卡片组,处理首次运行时文件缺失的情况
- 模块与标准库 —
json用于文件处理,random用于洗牌 - 字典与列表 — 在把它包装成类之前的底层结构
- 控制流 — 遍历卡片组,根据答对或答错进行分支
提示
从数据入手,而不是类。 一张卡片就是两个字符串:正面和背面。一组卡片就是一个卡片列表。先把这个跑通,然后如果你想要更整洁的接口,再把它包装成类。
JSON 处理文件格式。 json.load() 把一个文件读成 Python 列表或字典。json.dump() 把它写回去。json 模块在标准库里。
把文件加载放在 try/except 里。 脚本第一次运行时,保存文件还不存在。捕获 FileNotFoundError 可以让你优雅地从一个空卡片组开始,而不是崩溃。
更进一步
当核心学习循环跑通后:
- 重复错题。 记录玩家答错的卡片,并在会话结束时再循环一遍。
- 多个卡片组。 列出某个文件夹中可用的
.json文件,让用户选择要学习的卡片组。 - 间隔重复。 记录每张卡片被答对的次数。把答对次数少的卡片更频繁地显示出来。

