小白在双体自学Python,挤出任务管理系统日志

张开发
2026/5/30 13:27:08 15 分钟阅读
小白在双体自学Python,挤出任务管理系统日志
这是一个Python实现的待办清单程序支持添加、查看、标记完成和删除任务。程序使用JSON文件存储任务数据并配有猫叫提示音。主要功能包括1.添加新任务2.查看任务列表及完成状态3.将任务标记为已完成4.删除指定任务。操作后会播放提示音并自动保存数据到tasks.json文件。通过命令行菜单交互输入数字选项即可执行对应功能。待办事项清单应用代码讲解以下是您提供的Python代码的分步讲解。该代码实现了一个简单的待办事项清单应用支持添加、查看、标记完成和删除任务并使用JSON文件持久化存储数据。代码结构清晰分为模块导入、常量定义、函数实现和主程序循环。我将按步骤分开讲解。1.模块导入这部分导入所需的Python标准库模块os用于处理文件路径和存在性检查。json用于读写JSON格式的任务数据文件。winsound用于在Windows系统上播放提示音模拟猫叫。import os import json import winsound2.常量定义定义了一个常量FILE用于指定任务数据存储的文件名tasks.json。这确保了数据持久化存储的位置一致。FILE tasks.json # 任务数据存储文件3.函数定义代码定义了四个辅助函数每个函数负责特定功能load_tasks()函数功能加载任务列表。如果文件不存在则返回空列表。实现使用os.path.exists()检查文件是否存在。如果存在用json.load()读取文件内容并返回任务列表否则返回空列表。关键点使用UTF-8编码确保中文兼容性。def load_tasks(): 加载任务列表如果文件不存在则返回空列表 if not os.path.exists(FILE): return [] with open(FILE, r, encodingutf-8) as f: return json.load(f)save_tasks(tasks)函数功能保存任务列表到文件。实现用json.dump()将任务列表写入文件使用ensure_asciiTrue参数处理非ASCII字符如中文。关键点写入操作覆盖原文件确保数据更新。def save_tasks(tasks): 保存任务列表到文件 with open(FILE, w, encodingutf-8) as f: json.dump(tasks, f, ensure_asciiTrue)cat_sound()函数功能播放提示音模拟猫叫。实现使用winsound.Beep()两次分别设置频率500Hz和600Hz和持续时间200毫秒。关键点仅在Windows系统有效其他系统可能需要替换为平台兼容方式。def cat_sound(): 播放提示音模拟猫叫 winsound.Beep(500, 200) # 频率500Hz持续200毫秒 winsound.Beep(600, 200) # 频率600Hz持续200毫秒4.主程序循环main()函数main()函数是应用的核心包含一个无限循环提供用户菜单交互。任务列表从文件加载后用户可选择不同操作。每个选项对应一个功能初始化与欢迎信息加载任务列表并打印欢迎消息。def main(): 主程序循环 tasks load_tasks() print(欢迎来到待办清单)菜单循环循环显示菜单选项等待用户输入。选项包括添加任务1、查看任务2、标记完成3、删除任务4和退出5。while True: print(\n---菜单---) print(1. 添加任务) print(2. 查看任务) print(3. 标记完成) print(4. 删除任务) print(5. 退出) c input(请选择)选项处理基于用户输入c选项1添加任务输入任务名添加到列表字典格式{name: name, done: False}。保存数据播放提示音并打印成功消息。if c 1: name input(任务名) tasks.append({name: name, done: False}) save_tasks(tasks) cat_sound() print(添加成功)选项2查看任务遍历任务列表打印序号、任务名和状态已完成或未完成。elif c 2: print(\n我的任务) for i, t in enumerate(tasks, 1): s 已完成 if t[done] else 未完成 print(f{i}. {t[name]} - {s})选项3标记完成输入任务名搜索匹配项将done设为True。如果找到保存数据并播放提示音否则提示不存在。elif c 3: name input(输入要完成的任务名) found False for t in tasks: if t[name] name: t[done] True found True if found: save_tasks(tasks) cat_sound() print(已完成) else: print(任务不存在)选项4删除任务输入任务名搜索匹配项从列表中移除。如果找到保存数据并播放提示音否则提示不存在。elif c 4: name input(输入要删除的任务名) found False for t in tasks: if t[name] name: tasks.remove(t) found True if found: save_tasks(tasks) cat_sound() print(删除成功) else: print(任务不存在)选项5退出打印告别消息退出循环。elif c 5: print(喵再见) break无效输入处理如果输入非1-5提示错误。else: print(输入错误请重新选择)5.程序入口代码最后使用if __name__ __main__:确保模块直接运行时调用main()函数启动应用。if __name__ __main__: main()总结这段代码实现了一个完整的待办事项清单应用数据持久化通过JSON文件存储任务。用户交互菜单驱动支持增删改查操作。反馈机制使用提示音增强用户体验。错误处理简单检查任务存在性。 整体流程加载数据→显示菜单→处理用户操作→保存数据。代码简洁易扩展适合初学者学习文件处理和用户界面设计。完整代码import os import json import winsound FILE tasks.json # 任务数据存储文件 def load_tasks(): 加载任务列表如果文件不存在则返回空列表 if not os.path.exists(FILE): return [] with open(FILE, r, encodingutf-8) as f: return json.load(f) def save_tasks(tasks): 保存任务列表到文件 with open(FILE, w, encodingutf-8) as f: json.dump(tasks, f, ensure_asciiTrue) def cat_sound(): 播放提示音模拟猫叫 winsound.Beep(500, 200) # 频率500Hz持续200毫秒 winsound.Beep(600, 200) # 频率600Hz持续200毫秒 def main(): 主程序循环 tasks load_tasks() print(欢迎来到待办清单) while True: print(\n---菜单---) print(1. 添加任务) print(2. 查看任务) print(3. 标记完成) print(4. 删除任务) print(5. 退出) c input(请选择) if c 1: name input(任务名) tasks.append({name: name, done: False}) save_tasks(tasks) cat_sound() print(添加成功) elif c 2: print(\n我的任务) for i, t in enumerate(tasks, 1): s 已完成 if t[done] else 未完成 print(f{i}. {t[name]} - {s}) elif c 3: name input(输入要完成的任务名) found False for t in tasks: if t[name] name: t[done] True found True if found: save_tasks(tasks) cat_sound() print(已完成) else: print(任务不存在) elif c 4: name input(输入要删除的任务名) found False for t in tasks: if t[name] name: tasks.remove(t) found True if found: save_tasks(tasks) cat_sound() print(删除成功) else: print(任务不存在) elif c 5: print(喵再见) break else: print(输入错误请重新选择) if __name__ __main__: main()使用说明运行程序保存代码为Python文件如todo.py然后运行它。添加任务选择菜单选项1输入任务名任务会被保存到tasks.json文件。查看任务选择选项2显示所有任务及其状态。标记完成选择选项3输入任务名将其标记为已完成。删除任务选择选项4输入任务名将其删除。退出系统选择选项5退出程序。

更多文章