一 代码
'''5 排序''' def sort(): show() # 显示全部工程师信息 if os.path.exists(filename): # 判断文件是否存在 with open(filename, 'r') as file: # 打开文件 student_old = file.readlines() # 读取全部内容 student_new = [] for list in student_old: d = dict(eval(list)) # 字符串转字典 student_new.append(d) # 将转换后的字典添加到列表中 else: return ascORdesc = input("请选择(0升序;1降序):") if ascORdesc == "0": # 按升序排序 ascORdescBool = False # 标记变量,为False表示升序排序 elif ascORdesc == "1": # 按降序排序 ascORdescBool = True # 标记变量,为True表示降序排序 else: print("您的输入有误,请重新输入!") sort() mode = input("请选择排序方式(1按Java成绩排序;2按Python成绩排序;3按C语言成绩排序;0按总成绩排序):") if mode == "1": # 按Java成绩排序 student_new.sort(key=lambda x: x["java"], reverse=ascORdescBool) elif mode == "2": # 按Python成绩排序 student_new.sort(key=lambda x: x["python"], reverse=ascORdescBool) elif mode == "3": # 按C语言成绩排序 student_new.sort(key=lambda x: x["c"], reverse=ascORdescBool) elif mode == "0": # 按总成绩排序 student_new.sort(key=lambda x: x["java"] + x["python"] + x["c"], reverse=ascORdescBool) else: print("您的输入有误,请重新输入!") sort() show_student(student_new) # 显示排序结果
二 运行
╔———————工程师信息管理系统———————————————————————— │ │ =============== 功能菜单 ================= │ │ 1 录入工程师信息 │ 2 查找工程师信息 │ 3 删除工程师信息 │ 4 修改工程师信息 │ 5 排序 │ 6 统计工程师总人数 │ 7 显示所有工程师信息 │ 0 退出系统 │ ========================================== │ 说明:通过数字或↑↓方向键选择菜单 ╚———————————————————————————————————————————— 请选择:5 ID 名字 Java成绩 Python成绩 C语言成绩 总成绩 1001 攻城狮 99 99 99 297 1002 码农 100 100 100 300 请选择(0升序;1降序):0 请选择排序方式(1按Java成绩排序;2按Python成绩排序;3按C语言成绩排序;0按总成绩排序):1 ID 名字 Java成绩 Python成绩 C语言成绩 总成绩 1001 攻城狮 99 99 99 297 1002 码农 100 100 100 300