import os # 定义一个储存学生的列表 stu_list = [] def show(): print('1. 添加学生信息') print('2. 删除学生信息') print('3. 修改学生信息') print('4. 查询单个学生信息') print('5. 查询所有的学生信息') print('6. 退出系统并保存') # 文件的读取 到stu_list def file(): # 全局变量内部使用 需要全局化 之后stu_list在函数内部可以修改 global stu_list file_name = "21" # 判断文件是否存在 if os.path.exists(file_name): # 打开文件 f = open(file_name, "r", encoding="utf-8") # 读取文件 while True: # 每次读取一行 stu_info = f.readline() # print(type(stu_info)) # 判断文件中是否有数据 if stu_info: # 将数据转换为字典 添加到stu_list中 stu_list.append(eval(stu_info)) # eval() # 函数官方解释:将字符串str当作有效的表达式来求值并返回计算结果 # 在我看来就是还原数据原来的样子 # print(type(eval(stu_info))) else: break f.close() print("old_stu_list:", stu_list) else: print("gun") def insert(): name = input("请输入需要添加的学生姓名:") age = int(input("请输入需要添加的学生的年龄:")) gender = input("请输入需要添加的学生的性别:") stu_dict = {"姓名": name, "年龄": age, "性别": gender} # 将信息添加到stu_list stu_list.append(stu_dict) print("================") def remove(): name = input("输入需要删除学生姓名") for students in stu_list: if name == students["姓名"]: stu_list.remove(students) print("==================删除成功====================") def modify(): name = input("请输入需要修改学生姓名:") for students in stu_list: if name == students["姓名"]: age = int(input("年龄")) gender = input("性别") students["年龄"] = age students["性别"] = gender stu_list.append(students) print("==========修改成功===========") def search(): name = input("请输入需要删除学生姓名:") for students in stu_list: if name == students["姓名"]: print(students) def show_all(): for index, students in enumerate(stu_list): print(index + 1, students) def save(): f = open("21", "w", encoding="utf-8") for students in stu_list: f.write(str(students) + "\n") f.close() def main(): # 将文件中的学生信息读取出来放入stu_list file() while True: show() # 输入操作 opt = input('请输入操作:') if opt == "1": insert() elif opt == '2': # print('2. 删除学生') remove() elif opt == '3': # print('3. 修改学生信息') modify() elif opt == '4': # print('4. 查询单个学生信息') search() elif opt == '5': # print('5. 查询所有的学生信息') show_all() elif opt == '6': print('欢迎下次使用学生管理系统') save() break else: print('你输入的内容有误,请重新输入') continue input('...... 回车键继续操作.......') print("new", stu_list) # 表示只能当前程序执行下面代码 if __name__ == "__main__": main()
01-03
05-16