📌 实战系列:Python零基础综合实战项目(第1/5套)
🎯 项目定位 :零基础第一个完整工程级项目
告别零散代码片段!本项目整合你前面学的:循环、分支、函数、列表、文件读写、异常处理 ,做成一个可长期使用、数据永久保存的控制台记事本工具。
✅ 项目难度:⭐ 入门友好
✅ 前置知识:1--14章全套基础
✅ 学到的核心能力
-
真实项目需求拆解能力
-
数据持久化(程序关闭数据不丢)
-
菜单交互系统设计
-
函数模块化拆分代码
-
异常容错、防崩溃处理
一、项目需求说明
制作一个终端记事本工具,具备以下功能:
- 添加新笔记
- 查看所有笔记
- 根据序号删除指定笔记
- 自动保存到本地 note_list.txt
- 程序重启自动加载历史笔记
- 输入错误不崩溃,友好提示
- 循环菜单,可一直操作,支持退出
二、项目架构拆解(核心思维)
新手写代码最大问题:一堆代码堆在一起!我们规范拆分 5 大模块函数:
- load_note():加载本地文件数据
- save_note():保存数据到本地文件
- add_note():新增笔记功能
- show_note():展示全部笔记
- del_note():删除指定笔记
主程序:while 循环菜单调度所有功能。
三、完整可运行源码(超详细注释)
python
# ==========================================
# 项目:Python简易记事本(持久化版)
# 功能:增、删、查、自动保存、自动加载
# ==========================================
全局文件路径
FILE_PATH = "note_list.txt"
def load_note():
"""加载本地笔记文件,不存在则返回空列表"""
try:
with open(FILE_PATH, "r", encoding="utf-8") as f:
# 读取每一行,去除换行符,过滤空行
data = [line.strip() for line in f.readlines() if line.strip()]
return data
except FileNotFoundError:
# 文件不存在,首次运行返回空列表
return []
except Exception as e:
print("读取文件异常:", e)
return []
def save_note(note_list):
"""保存笔记列表到本地文件"""
with open(FILE_PATH, "w", encoding="utf-8") as f:
for note in note_list:
f.write(note + "\n")
def add_note():
"""新增笔记"""
content = input("请输入新笔记内容:")
note_list = load_note()
note_list.append(content)
save_note(note_list)
print("✅ 笔记添加成功!")
def show_note():
"""展示所有笔记"""
note_list = load_note()
if not note_list:
print("📭 暂无任何笔记!")
return
print("\n========= 我的笔记列表 =========")
for index, item in enumerate(note_list, start=1):
print(f"{index}. {item}")
print("==============================\n")
def del_note():
"""根据序号删除笔记"""
note_list = load_note()
if not note_list:
print("暂无笔记,无需删除!")
return
show_note()
try:
num = int(input("请输入要删除的笔记序号:"))
# 判断序号合法范围
if 1 <= num <= len(note_list):
del note_list[num - 1]
save_note(note_list)
print("✅ 删除成功!")
else:
print("❌ 序号超出范围!")
except ValueError:
print("❌ 请输入合法数字!")
def main():
"""主菜单系统"""
print("===== 欢迎使用简易记事本 =====")
while True:
print("\n【1】新增笔记")
print("【2】查看全部笔记")
print("【3】删除笔记")
print("【0】退出程序")
choice = input("请输入功能序号:")
if choice == "1":
add_note()
elif choice == "2":
show_note()
elif choice == "3":
del_note()
elif choice == "0":
print("👋 感谢使用,程序退出!")
break
else:
print("❌ 输入有误,请选择正确序号!")
程序入口
if name == "main":
main()
四、项目运行效果
- 首次运行自动创建 note_list.txt
- 新增笔记 → 自动保存到文件
- 查看笔记 → 读取文件展示
- 删除笔记 → 修改文件并更新
- 关闭程序重启,数据永久保留
五、核心知识点复盘
- 文件持久化:内存数据 和 磁盘数据区别
- 模块化编程:一个功能一个函数
- 异常处理:文件不存在、输入非数字容错
- enumerate 遍历:带序号展示列表
- while 菜单框架:几乎所有管理系统的通用模板
六、课后拓展作业(必做,提升极强)
- 给笔记增加时间戳,每条笔记自动记录创建时间
- 增加搜索笔记功能,输入关键词匹配内容
- 增加修改笔记功能,根据序号修改内容
- 增加清空所有笔记功能