30 分钟
Python 入门

项目:命令行待办事项管理器

把阶段一学的所有知识串起来用,做一个完整的待办事项管理工具

  • 综合运用变量、列表、字典、循环、条件、函数
  • 实现增删改查功能
  • 数据持久化到文件

项目需求

咱们做一个命令行待办事项管理器,功能包括:

添加待办事项

查看所有待办

标记完成

删除待办

数据保存到文件(下次打开还在)

数据结构设计

示例代码(可运行)

完整代码

示例代码(可运行)
💡项目亮点

这里把之前学的东西串起来用了:用列表和字典存数据,用函数封装功能,配合循环遍历、条件判断、文件读写,再加 JSON 序列化。做出来的是个能直接用的真实工具。

JSON 是什么?

JSON 是通用的数据存储格式。Python 的列表、字典能直接转成 JSON 存到文件里,也能从文件读回来:

示例代码(可运行)
预测输出
todos = []
todos.append({"id": 1, "task": "学习", "done": False})
print(len(todos))
print(todos[0]["task"])
填空题填写空白处的代码
todos = [] todos.({"id": 1, "task": "学习", "done": False}) print(len(todos)) #
选择题

JSON 中文字符应设置哪个参数?

选择题

命令行待办事项程序用什么存储任务列表?

资深工程师加餐

底层原理 · 大厂视角 · 工程经验,点卡片展开

print 把对象交给 sys.stdout 写出,显示时默认调用对象的 __str__;在交互环境直接回显变量走的是 __repr__(更偏「给开发者看的表示」)。sep 改分隔符、end 改结尾、file 可重定向到文件。面试常追问:生产环境为什么用 logging 而不是 print?因为日志有级别、能落盘、可结构化、可统一关闭,print 只适合临时调试。

挑战任务

待办管理器

简单+50 XP

实现待办的添加、查看、标记完成功能。

待办管理器
2 个测试用例

课后作业

添加优先级

中等+20 XP

给待办加个 priority 字段,取值分高、中、低三档,显示的时候按优先级排序。

添加优先级
1 个测试用例