实现简易便签,支持新增、修改、删除和查看便签,纯字符界面

🎉摘要:Python 是一门解释型、面向对象、动态类型的高级编程语言,由荷兰程序员 Guido van Rossum 于 1991 年发布,核心设计理念是优雅、明确、简单。

该示例利用前面学习的 Python3 基础知识来实现一个简易的便签功能,该便签的功能包含:

(1)查看所有便签

(2)添加新便签

(3)修改已有便签

(4)删除便签

(5)数据持久化存储,将便签的数据存储到文件,便签列表通过 JSON 文件保存

注意,该示例程序使用了 Python 的 json 和 os 内置模块,其中:

  • json:是 Python 内置标准模块,专门用来处理 JSON 格式数据

  • os:是 Python 内置标准模块,让代码直接和操作系统交互,如文件、路径、文件夹、环境变量等等

示例代码:

import json
import os

# 定义便签数据存储的文件名
NOTES_FILE = "notes.json"

def load_notes():
    """
    从JSON文件加载便签数据
    如果文件不存在,返回空列表
    """
    # 检查文件是否存在
    if os.path.exists(NOTES_FILE):
        try:
            # 读取并解析JSON文件
            with open(NOTES_FILE, "r", encoding="utf-8") as f:
                return json.load(f)
        except json.JSONDecodeError:
            # 文件损坏时返回空列表
            return []
    # 文件不存在,返回空列表
    return []

def save_notes(notes):
    """
    将便签列表保存到JSON文件
    :param notes: 便签数据列表
    """
    with open(NOTES_FILE, "w", encoding="utf-8") as f:
        # indent=4 让JSON文件格式化存储,方便查看
        json.dump(notes, f, ensure_ascii=False, indent=4)

def show_all_notes(notes):
    """展示所有便签"""
    if not notes:
        print("\n暂无便签内容!")
        return

    print("\n===== 我的便签列表 =====")
    # 遍历展示便签(索引从1开始,方便用户操作)
    for index, note in enumerate(notes, 1):
        print(f"\n{index}. {note}")
    print("========================\n")

def add_note(notes):
    """添加新便签"""
    content = input("请输入便签内容:").strip()
    if content:
        notes.append(content)
        save_notes(notes)
        print("便签添加成功!")
    else:
        print("便签内容不能为空!")

def modify_note(notes):
    """修改指定便签"""
    show_all_notes(notes)
    if not notes:
        return

    try:
        # 获取用户输入的便签编号
        note_index = int(input("请输入要修改的便签编号:")) - 1
        # 校验编号是否有效
        if 0 <= note_index < len(notes):
            new_content = input("请输入新的便签内容:").strip()
            if new_content:
                notes[note_index] = new_content
                save_notes(notes)
                print("便签修改成功!")
            else:
                print("便签内容不能为空!")
        else:
            print("无效的便签编号!")
    except ValueError:
        print("请输入有效的数字!")

def delete_note(notes):
    """删除指定便签"""
    show_all_notes(notes)
    if not notes:
        return

    try:
        note_index = int(input("请输入要删除的便签编号:")) - 1
        if 0 <= note_index < len(notes):
            deleted_note = notes.pop(note_index)
            save_notes(notes)
            print(f"已删除便签:{deleted_note}")
        else:
            print("无效的便签编号!")
    except ValueError:
        print("请输入有效的数字!")

def main():
    """主程序入口"""
    # 加载已保存的便签
    notes = load_notes()
    print("🎉 欢迎使用本地便签程序!")

    while True:
        # 主菜单
        print("\n===== 便签菜单 =====")
        print("1. 查看所有便签")
        print("2. 添加新便签")
        print("3. 修改便签")
        print("4. 删除便签")
        print("0. 退出程序")
        print("===================")

        choice = input("请选择操作(0-4):").strip()

        if choice == "1":
            show_all_notes(notes)
        elif choice == "2":
            add_note(notes)
        elif choice == "3":
            modify_note(notes)
        elif choice == "4":
            delete_note(notes)
        elif choice == "0":
            print("程序已退出,便签已自动保存!")
            break
        else:
            print("无效选择,请输入0-4的数字!")

if __name__ == "__main__":
    main()

运行结果:

🎉 欢迎使用本地便签程序!

===== 便签菜单 =====
1. 查看所有便签
2. 添加新便签
3. 修改便签
4. 删除便签
0. 退出程序
===================
请选择操作(0-4):2
请输入便签内容:今天准备学习 Python 编程
便签添加成功!

===== 便签菜单 =====
1. 查看所有便签
2. 添加新便签
3. 修改便签
4. 删除便签
0. 退出程序
===================
请选择操作(0-4):1

===== 我的便签列表 =====

1. 今天准备学习 Python 编程
========================


===== 便签菜单 =====
1. 查看所有便签
2. 添加新便签
3. 修改便签
4. 删除便签
0. 退出程序
===================
请选择操作(0-4):3

===== 我的便签列表 =====

1. 今天准备学习 Python 编程
========================

请输入要修改的便签编号:1
请输入新的便签内容:今天准备学习 Pyton 编程,主要学习基础知识。
便签修改成功!

===== 便签菜单 =====
1. 查看所有便签
2. 添加新便签
3. 修改便签
4. 删除便签
0. 退出程序
===================
请选择操作(0-4):1

===== 我的便签列表 =====

1. 今天准备学习 Pyton 编程,主要学习基础知识。
========================


===== 便签菜单 =====
1. 查看所有便签
2. 添加新便签
3. 修改便签
4. 删除便签
0. 退出程序
===================
请选择操作(0-4):2
请输入便签内容:明天准备出去旅游
便签添加成功!

===== 便签菜单 =====
1. 查看所有便签
2. 添加新便签
3. 修改便签
4. 删除便签
0. 退出程序
===================
请选择操作(0-4):1

===== 我的便签列表 =====

1. 今天准备学习 Pyton 编程,主要学习基础知识。

2. 明天准备出去旅游
========================


===== 便签菜单 =====
1. 查看所有便签
2. 添加新便签
3. 修改便签
4. 删除便签
0. 退出程序
===================
请选择操作(0-4):4

===== 我的便签列表 =====

1. 今天准备学习 Pyton 编程,主要学习基础知识。

2. 明天准备出去旅游
========================

请输入要删除的便签编号:2
已删除便签:明天准备出去旅游

===== 便签菜单 =====
1. 查看所有便签
2. 添加新便签
3. 修改便签
4. 删除便签
0. 退出程序
===================
请选择操作(0-4):1

===== 我的便签列表 =====

1. 今天准备学习 Pyton 编程,主要学习基础知识。
========================


===== 便签菜单 =====
1. 查看所有便签
2. 添加新便签
3. 修改便签
4. 删除便签
0. 退出程序
===================
请选择操作(0-4):0
程序已退出,便签已自动保存!


示例核心功能说明:

(1)数据存储:所有便签以列表格式存储在 notes.json 文件中,存储格式如下:

[
    "记得买牛奶",
    "学习Python便签程序",
    "周末去公园散步"
]

注意,程序启动时自动加载文件,修改后自动保存

(2)核心函数:

  • load_notes():读取 JSON 文件,加载便签数据(文件不存在 / 损坏时返回空列表)

  • save_notes():将便签列表写入 JSON 文件,支持中文格式化存储

  • show_all_notes():遍历并展示所有便签

  • add/modify/delete_note():增删改便签的核心逻辑

  




说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
其他应用
公众号