ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

从零开始:用 Python 打造你的第一个命令行待办清单工具

从零开始:用 Python 打造你的第一个命令行待办清单工具 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, encodingutf-8) as f: return json.load(f) def save_todos(todos): 把任务列表保存到文件。 with open(TODO_FILE, w, encodingutf-8) as f: json.dump(todos, f, ensure_asciiFalse, indent2) 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 读写、循环与条件判断以及最基础的输入输出。这些看似零散的知识点组合在一起就构成了一个能真正跑起来的程序。希望这个小项目能给你带来信心也期待你把它改造成属于自己的样子。
返回列表