python实现软件工程师排序模块

一 代码

'''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

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值