python 学生管理系统 文件版

python 学生管理系统文件版

昨天分享了低配版本的学生管理系统, 今天来个高级一丢丢的~
思路就不多说了, 想看的在我昨天的博客有https://blog.csdn.net/LanlanDeming/article/details/103414263, 就直接进入正题啦

import os

def show_menu():
    """显示菜单信息"""
    print("-------学生管理系统 V 1.0 -------")
    print('1. 添加学生')
    print('2. 删除学生')
    print('3. 修改学生')
    print('4. 查询学生')
    print('5. 查询所有学生')
    print('6. 退出系统')


def insert_student():
    # global students_list   # 可以写,可以不写, 列表是可变类型,没有改变引用中
    # 1. 获取学生的信息(通过 input()) name, age, gender
    name = input("请输入姓名:")
    # 4. 输入姓名之后,判断这个学生是否存在
    # 4.1 遍历列表
    for student in students_list:  # []为空,不会进入循环
        # student 是每一个学生,字典
        if name == student['name']:
            # 代表学生存在,不添加,直接退出
            print("^^^^^^^^学生信息已经存在^^^^^^^^^^")
            return
    age = int(input("请输入年龄:"))
    gender = input("请输入性别:")
    # 2. 需要将学生保存一个字典中
    student_dict = {'name': name, 'age': age, 'gender': gender}
    # 3. 将这个学生添加到学生列表中
    students_list.append(student_dict)


def show_info():
    """查看所有学生信息"""
    for stu in students_list:
        # stu 字典
        print(stu['name'], stu['age'], stu['gender'])


def search_student():
    """查看单个学生"""
    # 1. 确定查看那个学生, name = input()
    name = input("请输入要查询的学生名字:")

    #     2. 判断 学生是否存在
    for stu in students_list:   # [{}, {}, {}]
        if stu['name'] == name:
            # 相等,找到这个学生
            print(f"姓名:{stu['name']}, 年龄:{stu['age']}, 性别:{stu['gender']}")
            # break 结束的是循环
            # retutn 直接结束函数的执行
            break
    else:
        print('该学生信息不存在.........')


def modify_student():
    """修改学生"""
    # 1. 确定修改那个学生, name = input()
    name = input("请输入要修改的学生名字:")

    #     2. 判断 学生是否存在
    for stu in students_list:
        if stu['name'] == name:
            # 相等,找到这个学生, 修改学生信息
            stu['age'] = int(input("请输入新的年龄:"))
            # break 结束的是循环
            # retutn 直接结束函数的执行
            break
    else:
        print('该学生信息不存在.........')


def remove_student():
    """删除学生"""
    # 1. 确定删除那个学生, name = input()
    name = input("请输入要删除的学生名字:")

    #     2. 判断 学生是否存在
    for stu in students_list:
        if stu['name'] == name:
            # 相等,找到这个学生, 删除这个学生. 将这个学生的信息从列表中删除
            students_list.remove(stu)  # [{}, {}, {}]
            # break 结束的是循环
            # retutn 直接结束函数的执行
            break
    else:
        print('该学生信息不存在.........')


def save_data():
    """保存学生信息"""
    # 1. w 方式打开文件
    f = open('student.data', 'w', encoding='utf-8')
    f.write(str(students_list))
    f.close()


def load_data():
    """从文件中读取内容"""

    global students_list
    # 判断文件是否存在
    if os.path.exists('student.data'):
        f = open('student.data', 'r', encoding='utf-8')
        # "[{'name': 'isaac', 'age': 18, 'gender': 'm'}]"
        buf = f.read()  # ""
        students_list = eval(buf)


# 定义学生列表
students_list = []

# 读取文件,只需要一次
load_data()

while True:
    show_menu()
    option = input("请输入要进行的操作编号:")
    if option == '1':
        print('******添加学生********')
        insert_student()
        # print("添加完成")
        # print(students_list)
    elif option == '2':
        print('******删除学生********')
        remove_student()
    elif option == '3':
        print('******修改学生********')
        modify_student()
    elif option == '4':
        print('******查询学生********')
        search_student()
    elif option == '5':
        print('******查询所有学生********')
        show_info()
    elif option == '6':
        print("系统退出, 欢迎下次使用......")
        save_data()
        break
    else:
        print('输入有误,重新输入')


自己打完了去pycharm发现有缩进错误,爱摁空格的毛病要改~ , 调试完又复制了过来,我是何苦呢~

发布了56 篇原创文章 · 获赞 17 · 访问量 2161

猜你喜欢

转载自blog.csdn.net/LanlanDeming/article/details/103429173