一 代码
'''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