项目学习笔记
学习者:林悦
项目:命令行学习任务管理器
技术:Python 3与JSON文件
更新日期:0000-00-00
学习阶段:核心流程完成,异常处理补充中
一、项目背景与学习目标
本次项目用于练习Python函数组织、列表字典操作及文件读写,实现一个个人使用的命令行学习任务管理器。核心功能包括新增任务、查看任务、标记完成和本地保存。当前已跑通新增到再次启动后读取的基本流程,异常输入处理仍在补充。学习目标是理解数据在内存和文件之间的变化,并能够说明每个函数的职责和失败时的处理方式。
二、需求与功能完成情况
三、数据结构与模块设计
每条任务使用字典保存id、title、minutes和done四个字段,全部任务放入列表。id作为更新依据,title用于显示,minutes保存预计学习时长,done使用布尔值表示完成状态。命令入口只负责读取用户选择,各功能分别调用新增、列出、完成和保存函数,使交互与数据处理保持清楚的职责划分。
[
{"id": 1, "title": "复习二分查找", "minutes": 30, "done": true},
{"id": 2, "title": "整理英语阅读", "minutes": 45, "done": false}
]
四、实现过程与关键理解
- 新增任务时通过已有编号的最大值生成下一个编号,避免删除记录后直接用列表长度产生重复编号。
- 保存文件时明确使用UTF-8编码,并以结构化JSON保留布尔值和整数,重新读取后核对字段类型与内容。
- 标记完成先查找匹配编号,命中后更新状态并保存;未找到时给出清楚提示,保留原任务列表。
五、问题复盘与验证结果
最初把输入时长直接保留为字符串,后续合计时出现类型错误;修订后在入口转换为整数,并准备增加正数校验。另一次在读取失败时直接初始化空列表,可能使后续保存覆盖原有文件,因此已调整设计:区分文件不存在与内容损坏,内容损坏时停止写入并提示检查原文件。目前已验证新增两项任务、完成一项、退出重启和查询不存在编号四种场景。
六、后续改进与学习沉淀
下一步先完成时长校验及损坏文件处理,再补充按状态筛选功能。林悦将在本周五前逐项验证空标题、非数字时长、重复完成和损坏JSON输入,并保存输入、预期行为与实际结果。后续保存流程考虑先写临时文件再替换,降低中途失败的影响;每完成一项功能,记录数据变化和异常路径,再决定是否扩展新的功能。
本次项目的主要收获是把需求拆成可验证的小流程,并用具体数据理解函数之间的衔接。下轮学习将尝试为任务增加短日期字段,先确定字段含义、排序规则和旧数据兼容方式,再修改实现并重跑现有场景。