Python实战项目01:简易记事本系统

📌 实战系列:Python零基础综合实战项目(第1/5套)

🎯 项目定位 :零基础第一个完整工程级项目

告别零散代码片段!本项目整合你前面学的:循环、分支、函数、列表、文件读写、异常处理 ,做成一个可长期使用、数据永久保存的控制台记事本工具。

✅ 项目难度:⭐ 入门友好

✅ 前置知识:1--14章全套基础

✅ 学到的核心能力

  • 真实项目需求拆解能力

  • 数据持久化(程序关闭数据不丢)

  • 菜单交互系统设计

  • 函数模块化拆分代码

  • 异常容错、防崩溃处理

一、项目需求说明

制作一个终端记事本工具,具备以下功能:

  1. 添加新笔记
  2. 查看所有笔记
  3. 根据序号删除指定笔记
  4. 自动保存到本地 note_list.txt
  5. 程序重启自动加载历史笔记
  6. 输入错误不崩溃,友好提示
  7. 循环菜单,可一直操作,支持退出

二、项目架构拆解(核心思维)

新手写代码最大问题:一堆代码堆在一起!我们规范拆分 5 大模块函数:

  1. load_note():加载本地文件数据
  2. save_note():保存数据到本地文件
  3. add_note():新增笔记功能
  4. show_note():展示全部笔记
  5. 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()

四、项目运行效果

  1. 首次运行自动创建 note_list.txt
  2. 新增笔记 → 自动保存到文件
  3. 查看笔记 → 读取文件展示
  4. 删除笔记 → 修改文件并更新
  5. 关闭程序重启,数据永久保留

五、核心知识点复盘

  • 文件持久化:内存数据 和 磁盘数据区别
  • 模块化编程:一个功能一个函数
  • 异常处理:文件不存在、输入非数字容错
  • enumerate 遍历:带序号展示列表
  • while 菜单框架:几乎所有管理系统的通用模板

六、课后拓展作业(必做,提升极强)

  1. 给笔记增加时间戳,每条笔记自动记录创建时间
  2. 增加搜索笔记功能,输入关键词匹配内容
  3. 增加修改笔记功能,根据序号修改内容
  4. 增加清空所有笔记功能
相关推荐
凤城老人1 小时前
从零手写开源私有云盘|Flask+Vue3+Electron全栈网盘,单容器一键部署
python·docker·electron·vue
lpfasd1231 小时前
配置文件格式对比 与 AI Coding 的选择逻辑
python·flask·numpy
2601_962885721 小时前
如何用 Python 把 A 股行情批量导出到 Excel/CSV?(多股票多 Sheet)
python
君顾11 小时前
本地城市社区家政物业联动系统源码:架构设计与派单联动实战
java·开发语言·健身房
2601_962218611 小时前
万象生鲜系统多终端统一数据协议PC手机PDA数据实时同步
大数据·数据库·人工智能·python·算法
AI编码进化论2 小时前
云IDE介绍:环境模板化、Agent上云,云IDE该怎么选
开发语言·ide·人工智能·团队开发·ai编程
科技苑2 小时前
Python AI自动剪辑视频简易程序
人工智能·python
晴天的雨.9922 小时前
[C++算法]盛最多水的容器(双指针算法)
开发语言·c++·算法
夜雪一千2 小时前
Python爬虫实战:把Bootstrap栅格Div伪表格转为原生Table表格
python