☰
从零开始:用 Python 打造你的第一个命令行待办清单工具
2026/10/2 21:12:28 网站建设 项目流程

1. 引言

很多人在学习编程时,都会纠结第一个项目该做什么。太简单的没意思,太复杂的又容易劝退。其实,一个恰到好处的入门项目,应该既能让你练到核心语法,又能立刻看到成果。今天,我们就一起动手,用 Python 写一个能在终端里运行的待办清单工具。它不依赖任何第三方库,代码量不大,但足够让你体会到「从需求到实现」的完整过程。

2. 准备工作

开始之前,请确保你的电脑上已经安装了 Python 3.6 或更高版本。你可以在终端里输入python --version来检查。如果还没有安装,可以去 Python 官网下载对应系统的安装包,安装时记得勾选「Add Python to PATH」选项。

另外,你需要一个趁手的代码编辑器。新手推荐使用 VS Code,它免费、跨平台,而且对 Python 的支持非常友好。

3. 设计思路

在动手写代码之前,我们先想清楚这个工具要做什么。一个最简的待办清单,至少需要支持以下操作:

  • 添加任务:输入一句话,把它记下来。
  • 查看任务:列出当前所有未完成的任务。
  • 完成任务:把某条任务标记为已完成。
  • 删除任务:把某条任务从清单里移除。

为了让数据在程序关闭后不丢失,我们还需要把任务保存到一个本地的 JSON 文件里。这样下次打开程序,之前的记录都还在。

4. 代码实现

我们把整个程序拆成几个小函数,每个函数只负责一件事。这样代码清晰,也方便以后扩展。下面是完整的实现:

import json import os TODO_FILE = "todos.json" def load_todos(): """从文件加载任务列表,文件不存在时返回空列表。""" if not os.path.exists(TODO_FILE): return [] with open(TODO_FILE, "r", encoding="utf-8") as f: return json.load(f) def save_todos(todos): """把任务列表保存到文件。""" with open(TODO_FILE, "w", encoding="utf-8") as f: json.dump(todos, f, ensure_ascii=False, indent=2) def show_todos(todos): """打印所有任务,带编号和完成状态。""" if not todos: print("当前没有任务。") return for i, todo in enumerate(todos, 1): status = "✓" if todo["done"] else "○" print(f"{i}. [{status}] {todo['text']}") def add_todo(todos, text): """添加一条新任务。""" todos.append({"text": text, "done": False}) save_todos(todos) print("已添加任务。") def mark_done(todos, index): """把指定编号的任务标记为完成。""" if 1 <= index <= len(todos): todos[index - 1]["done"] = True save_todos(todos) print("任务已完成。") else: print("编号无效。") def remove_todo(todos, index): """删除指定编号的任务。""" if 1 <= index <= len(todos): removed = todos.pop(index - 1) save_todos(todos) print(f"已删除任务:{removed['text']}") else: print("编号无效。") def main(): todos = load_todos() while True: print("\n请选择操作:") print("1. 查看任务") print("2. 添加任务") print("3. 完成任务") print("4. 删除任务") print("5. 退出") choice = input("输入数字:").strip() if choice == "1": show_todos(todos) elif choice == "2": text = input("输入任务内容:").strip() if text: add_todo(todos, text) else: print("任务内容不能为空。") elif choice == "3": show_todos(todos) idx = int(input("输入要完成的任务编号:")) mark_done(todos, idx) elif choice == "4": show_todos(todos) idx = int(input("输入要删除的任务编号:")) remove_todo(todos, idx) elif choice == "5": print("再见!") break else: print("无效输入,请重新选择。") if __name__ == "__main__": main()

5. 运行与测试

把上面的代码保存为todo.py,然后在终端里运行python todo.py。你会看到一个简单的菜单。试着添加几条任务,再完成或删除其中一条,最后退出程序并重新打开,看看数据是否还在。

如果一切正常,恭喜你,你已经拥有了一个属于自己的命令行工具。虽然它很简单,但「读取输入、处理逻辑、持久化存储」这三个环节,正是几乎所有软件的核心骨架。

6. 扩展思路

这个工具还有很多可以玩的地方。比如:

  • 给任务加上优先级或截止日期,并按这些字段排序。
  • 支持编辑已有任务的内容。
  • 用argparse库改造,让它支持todo.py add "买牛奶"这样的命令行参数调用。
  • 把存储换成 SQLite 数据库,为以后做成 Web 应用打基础。

每完成一个扩展,你对 Python 的理解就会更深一层。编程的乐趣,往往就藏在这些「把想法变成现实」的小项目里。

7. 总结

今天我们从一个简单的需求出发,用 Python 实现了一个完整的命令行待办清单工具。过程中我们练习了函数封装、JSON 读写、循环与条件判断,以及最基础的输入输出。这些看似零散的知识点,组合在一起,就构成了一个能真正跑起来的程序。希望这个小项目能给你带来信心,也期待你把它改造成属于自己的样子。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询