时间:2022/12/22
项目需求:
- 写一个项目,可以录入教师信息,建议不要录入中文,教师信息包括姓名、年龄、教授科目
- 将教师信息格式化打印出来
- 按照年龄对教师进行升序排列并打印
- 按照年龄对教师进行降序排列并打印
- 将教师存入文件中(提示,写文件可以用write方法)
- 可以从文件中读取教师信息
-
""" 教师信息采集系统 """ import os # 定义一个储存教师的列表 teacher_list = [] def show(): print('=======功能菜单=======') print('1. 添加教师信息') print('2. 删除教师信息') print('3. 修改教师信息') print('4. 查询单个教师信息') print('5. 查询所有的教师信息') print('6. 按年龄升序所有的教师信息') print('7. 按年龄降序所有的教师信息') print('8. 保存文件') print('0. 退出系统并保存') print('=======功能菜单=======') # 文件的读取 到teacher_list def file(): # 全局变量内部使用 需要全局化 之后teacher_list在函数内部可以修改 global teacher_list file_name = "teacher_data" # 判断文件是否存在 if os.path.exists(file_name): # 打开文件 f = open(file_name, "r", encoding="utf-8") # 读取文件 while True: # 每次读取一行 teacher_info = f.readline() # print(type(stu_info)) # 判断文件中是否有数据 if teacher_info: # 将数据转换为字典 添加到teacher_list中 teacher_list.append(eval(teacher_info)) # eval() # 函数官方解释:将字符串str当作有效的表达式来求值并返回计算结果 # 在我看来就是还原数据原来的样子 # print(type(eval(teacher_info))) else: break f.close() # print("old_teacher_list:", teacher_list) else: print("gun") def insert(): name = input("请输入需要添加的教师姓名:") age = int(input("请输入需要添加的教师的年龄:")) gender = input("请输入需要添加的教师的性别:") teacher_dict = {"姓名": name, "年龄": age, "性别": gender} # 将信息添加到stu_list teacher_list.append(teacher_dict) print("================") def remove(): name = input("输入需要删除教师姓名") for teacher in teacher_list: if name == teacher["姓名"]: teacher_list.remove(teacher) print("==================删除成功====================") def modify(): name = input("请输入需要修改教师姓名:") for i in range(len(teacher_list)): if name == teacher_list[i]["姓名"]: age = int(input("年龄")) gender = input("性别") teacher_list[i]["年龄"] = age teacher_list[i]["性别"] = gender print("==========修改成功===========") def print_teacher(teacher): print("------------------------------") print('教师姓名:%s|教师年龄:%d|教师性别:%s' % (teacher["姓名"],teacher["年龄"],teacher["性别"])) print("------------------------------") def search(): name = input("请输入搜索的教师姓名:") for teacher in teacher_list: if name == teacher["姓名"]: print_teacher(teacher) # def show_up(): # print("升序查询") # print("--------------------------------") # list=teacher_list # list.sort(key=lambda dict: dict['年龄']) # for index, teacher in enumerate(list): # print(index + 1, '|教师姓名:%s|教师年龄:%d|教师性别:%s' % (teacher["姓名"], teacher["年龄"], teacher["性别"])) # print("--------------------------------") # # def show_down(): # print("降序序查询") # print("--------------------------------") # list=teacher_list # list.sort(key=lambda dict: dict['年龄'],reverse=True) # for index, teacher in enumerate(list): # print(index + 1, '|教师姓名:%s|教师年龄:%d|教师性别:%s' % (teacher["姓名"], teacher["年龄"], teacher["性别"])) # print("--------------------------------") def show_up(): print("升序查询") print("--------------------------------") list=teacher_list teacher_list.sort(key=lambda dict: dict['年龄']) for index, teacher in enumerate(teacher_list): print(index + 1, '|教师姓名:%s|教师年龄:%d|教师性别:%s' % (teacher["姓名"], teacher["年龄"], teacher["性别"])) print("--------------------------------") def show_down(): print("降序序查询") print("--------------------------------") list=teacher_list teacher_list.sort(key=lambda dict: dict['年龄'],reverse=True) for index, teacher in enumerate(teacher_list): print(index + 1, '|教师姓名:%s|教师年龄:%d|教师性别:%s' % (teacher["姓名"], teacher["年龄"], teacher["性别"])) print("--------------------------------") def show_all(): print("--------------------------------") for index, teacher in enumerate(teacher_list): print(index + 1, '|教师姓名:%s|教师年龄:%d|教师性别:%s' % (teacher["姓名"],teacher["年龄"],teacher["性别"])) print("--------------------------------") def show_down(): print("降序序查询") print("--------------------------------") list=teacher_list list.sort(key=lambda dict: dict['年龄'],reverse=True) for index, teacher in enumerate(list): print(index + 1, '|教师姓名:%s|教师年龄:%d|教师性别:%s' % (teacher["姓名"], teacher["年龄"], teacher["性别"])) print("--------------------------------") def show_all(): print("--------------------------------") for index, teacher in enumerate(teacher_list): print(index + 1, '|教师姓名:%s|教师年龄:%d|教师性别:%s' % (teacher["姓名"],teacher["年龄"],teacher["性别"])) print("--------------------------------") def save(): f = open("teacher_data", "w", encoding="utf-8") for teacher in teacher_list: f.write(str(teacher) + "\n") f.close() def main(): # 将文件中的教师信息读取出来放入teacher_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('6. 查询所有的教师信息') show_up() elif opt == '7': # print('7. 查询所有的教师信息') show_down() elif opt == '8': print('已保存') save() elif opt == '0': print('欢迎下次使用学生管理系统') save() break else: print('你输入的内容有误,请重新输入') continue input('...... 回车键继续操作.......') # print("fianllst", teacher_list) # 表示只能当前程序执行下面代码 if __name__ == "__main__": main()
运行结果(仅供参考):
功能菜单
输入操作1添加老师
输入5查看所有老师
输入2删除老师bb
输入3修改老师
输入4查询老师cc
输入6升序
输入7降序
输入8保存文件
输入0退出