Python开发笔记增查功能时数组存值消失、查看不显示问题
简易笔记增查功能存储丢失问题修复
问题原因
- 核心错误:存储笔记的列表
noteList = []被写在了while循环内部,每次循环接收用户指令前都会执行一次列表初始化,之前存入的所有笔记会被直接重置为空。 - 冗余逻辑错误:
addNote函数被定义在循环内部,每次循环都会重复声明函数;函数内错误声明了临时变量note为全局变量,实际note只是单次输入的临时值,不需要全局声明,且函数未正确声明对noteList的访问权限。 - 体验缺陷:view逻辑直接打印原生列表,可读性差,没有做非法输入的兼容处理。
修复后可运行代码
# 笔记列表初始化移到循环外,全局仅初始化一次 noteList = [] # 函数定义移到循环外,避免重复定义 def addNote(): note = input("Add your notes here: ") noteList.append(note) print("笔记添加成功,当前列表:", noteList) # 主循环 while True: user = input("Do you want to (View/Add) notes: ").lower() if user == 'view': print("===== 所有已存储笔记 =====") for i, note_content in enumerate(noteList, 1): print(f"{i}. {note_content}") elif user == 'add': addNote() else: print("无效指令,请输入view或add")
关键改动说明
- 将笔记列表、功能函数的定义都移到主循环外部,保证列表不会被重复初始化,函数不会被重复创建。
- 删除了无意义的
global note声明,临时输入值直接存入列表即可,不需要占用全局变量空间。 - 优化了查看笔记的输出格式,增加非法输入提示,使用体验更好。
内容的提问来源于stack exchange,提问作者DrippyDino
相关产品推荐
相关产品推荐

