python 学生管理系统 文件版
python 学生管理系统文件版
昨天分享了低配版本的学生管理系统, 今天来个高级一丢丢的~
思路就不多说了, 想看的在我昨天的博客有https://blog.csdn.net/LanlanDeming/article/details/103414263
import osdef 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('输入有误,重新输入')