湖北省城乡与住房建设厅网站室内装饰设计学什么
------------★Python练手项目源码★------------
Python项目27:用Tkinter写日志管理系统(中下等难度)
Python项目26:设计学生成绩管理系统(简易版)
Python项目25:带滚动效果的商场抽奖系统(安排!!!)
Python项目24:基于Tkinter图形化界面,实现的学生课堂点名系统
Python项目23:(简易版)年会员工抽奖程序
Python项目22:一个简单的记账系统(收入+支出+查询)
Python项目21:双色球历史数据爬虫+数据分析小工具
Python项目源码20:银行管理系统(开户、查询、取款、存款、转账、锁定、解锁、退出)
Python项目19:学员信息管理系统(简易版)
Python项目18:使用Pillow模块,随机生成4位数的图片验证码
Python项目17:教你制作一副帅气的春联
Python项目16:教你使用pillow把女神的图片,添加表白文字。
Python项目15:Pygame制作,新年动态烟花
Python项目14:使用random,模拟扑克牌发牌+猜单词游戏
Python项目12:破解zip压缩包的密码
Python项目10:使用Tkinter批量新建文件夹
Python项目09:使用filestools模块,批量添加图片水印
Python小项目05:使用pywifi模块,暴力破解WIFI密码 !!亲测有效
Python经典小游戏02:字母数字代码雨
1.这个待办事项列表应用具以下功能:
添加任务:用户可以输入任务内容并添加到列表中。
查看任务:显示所有任务,用复选框显示完成状态。
标记完成:可以通过序号将任务标记为已完成。
删除任务:可以通过序号删除任意任务。
持久化存储:所有任务会自动保存到JSON文件中。
错误处理:包含基本的输入验证和错误处理。
2.使用方法:运行程序后会显示功能菜单,输入数字选择相应操作,数据会自动保存到同目录下的tasks.json文件,退出时会自动保存当前任务列表。软件运行后的效果,我还有3个任务没有完成!
图片
3.代码类思想优势:更好的代码组织:相关功能集中在一个类中,状态管理:通过实例变量维护任务列表状态,封装性:隐藏内部实现细节,暴露清晰接口。可扩展性:更容易添加新功能(如任务分类/优先级等)。可重用性:可以创建多个独立的待办列表实例。
0.封装为类:
将数据和操作封装在TodoList类中
任务数据存储为实例变量self.tasks
文件名存储为实例变量self.filename
访问控制:
使用下划线前缀表示私有方法(_load_tasks, _save_tasks, _show_menu)
公共方法保持原有功能接口
消除全局变量:
所有数据都存储在实例属性中
不再需要传递tasks参数
提高可维护性:
相关功能集中在一个类中
方法按功能模块化组织
更容易扩展和重用
改进数据存储:
文件路径可配置(通过构造函数参数)
存储逻辑与业务逻辑分离
# -*- coding: utf-8 -*-
# @Author : 小红牛
# 微信公众号:WdPython
import json
import osclass TodoList:def __init__(self, filename="tasks.json"):self.filename = filenameself.tasks = self._load_tasks()def _load_tasks(self):"""加载任务列表"""if os.path.exists(self.filename):with open(self.filename, "r") as f:return json.load(f)return []def _save_tasks(self):"""保存任务列表"""with open(self.filename, "w") as f:# indent=2的作用是指定缩进级别为2个空格,数据可读性json.dump(self.tasks, f, indent=2)# 静态方法@staticmethoddef _show_menu():"""显示菜单"""print("\n---待办事项功能列表---")print("1. 添加新任务")print("2. 查看所有任务")print("3. 标记任务为已完成")print("4. 删除任务")print("5. 保存并退出")def add_task(self):"""添加新任务"""task_name = input("请输入任务内容: ").strip()if task_name:self.tasks.append({"name": task_name, "completed": False})print(f"已添加任务: {task_name}")else:print("任务内容不能为空!")def show_tasks(self):"""显示所有任务"""if not self.tasks:print("当前没有任务!")returnprint("\n任务列表:")for i, task in enumerate(self.tasks, 1):status = "已完成" if task["completed"] else " "print(f"{i}. [{status}] {task['name']}")def complete_task(self):"""标记任务为已完成"""self.show_tasks()try:task_num = int(input("请输入要标记完成的任务序号: "))if 1 <= task_num <= len(self.tasks):self.tasks[task_num - 1]["completed"] = Trueprint("任务标记为已完成!")else:print("无效的任务序号!")except ValueError:print("请输入有效的数字!")def delete_task(self):"""删除任务"""self.show_tasks()try:task_num = int(input("请输入要删除的任务序号: "))if 1 <= task_num <= len(self.tasks):removed = self.tasks.pop(task_num - 1)print(f"已删除任务: {removed['name']}")else:print("无效的任务序号!")except ValueError:print("请输入有效的数字!")def run(self):"""运行主程序"""while True:self._show_menu()choice = input("请选择操作 (1-5): ").strip()if choice == "1":self.add_task()elif choice == "2":self.show_tasks()elif choice == "3":self.complete_task()elif choice == "4":self.delete_task()elif choice == "5":self._save_tasks()print("已保存任务,再见!")breakelse:print("无效的输入,请选择1-5之间的数字!")if __name__ == "__main__":app = TodoList()app.run()
完毕!!感谢您的收看
----------★★跳转到历史博文集合★★----------
我的零基础Python教程,Python入门篇 进阶篇 视频教程 Py安装py项目 Python模块 Python爬虫 Json Xpath 正则表达式 Selenium Etree CssGui程序开发 Tkinter Pyqt5 列表元组字典数据可视化 matplotlib 词云图 Pyecharts 海龟画图 Pandas Bug处理 电脑小知识office自动化办公 编程工具 NumPy Pygame