• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Python 处理表格进行成绩排序的操作代码

    一、需求分析

    我们首先有一个成绩表单,但是学生的成绩是按照学号进行排序的,现在,我们希望清晰明了的知道每一个学生的名次,并且需要将学生按照成绩的高低重新进行排序。

    也就是说,我们将学生从按照学号排序转变为按照成绩从高到低进行排序。

    二、代码呈现

    这个需求其实比较简单,于是,我们直接呈现代码,主要问题是Excel表格的读写操作,这个解决以后就十分简单了。

    Excel读:xlrd模块
    Excel写:xlwt模块

    代码以及解释如下:

    import xlwt
    import xlrd
    # 导入模块
    
    wb = xlwt.Workbook()  
    # 创建 excel 表格
    xls_0 = xlrd.open_workbook("四年级1.xls")
    # 读取表格文件
    
    for i in range(4, 8, 1):
        # 读取不同的表单
        new_sheet = xls_0.sheet_by_index(i)
        sh = wb.add_sheet(f'{new_sheet.name}.xls')  # 创建一个 表单
    
        # 设置空列表进行数据的存储
        id_list = []
        name_list = []
        score_list = []
    
        # 读取表格的数据
        for o in range(3):  # 3 列
            for t in range(20):  # 20 行
                # 获取学号、姓名、成绩等信息
                id_list.append(new_sheet.cell(t + 3, 3 * o).value)
                name_list.append(new_sheet.cell(t + 3, 3 * o + 1).value)
                score_list.append(new_sheet.cell(t + 3, 3 * o + 2).value)
        # 获取数据
    
        # 进行一定的预处理,去除不存在的人
        # 意思是说:有些位置是空的,这些位置需要去除掉
        for number in range(len(id_list)):
            # 由于进行的是删除操作,所以可能会出现下标越界的情况,为了防止这种情况的出现,我们进行异常处理
            try:
                if name_list[number] == '' or score_list[number] == '' or score_list[number] == '请假':
                    # 这个实际上是去除空值
                    id_list.pop(number)
                    name_list.pop(number)
                    score_list.pop(number)
            except:
                continue
        # 去除不存在的人
    
        # 进行排序的操作
        for h in range(len(id_list)):
            # len(id_list) 次循环
            for s in range(len(id_list) - 1):
                # 这里是进行 len(id_list) - 1 次循环
                try:
                    if score_list[s] >= score_list[s + 1]:
                        pass
                    else:
                        score_list[s], score_list[s + 1] = score_list[s + 1], score_list[s]
                        name_list[s], name_list[s + 1] = name_list[s + 1], name_list[s]
                        id_list[s], id_list[s + 1] = id_list[s + 1], id_list[s]
                except:
                    continue
        # 冒泡排序
    
        # 将数据写入文件
        position = 0
        
        for h in range(len(id_list)):
            # 写入文件
            sh.write(position, 0, id_list[h])
            sh.write(position, 1, name_list[h])
            sh.write(position, 2, score_list[h])
            position += 1
        # 写入文件中去
    
    # 保存文件
    
    wb.save(f'四年级1-五至八班-分数排序.xls')  
    # 保存

    在这里,我们使用了冒泡排序,当然,如果想要运行的更快一些,可以考虑希尔排序,堆排序,快速排序等排序方式,但是要注意,学号、姓名、分数一定要同时进行排序,就是说这三个量应该捆绑在一起移动,而移动的原则就是分数高低。

    三、成果展示

    图片1、

    图片2、


    图片3、

    图片4、

    到此这篇关于Python 处理表格进行成绩排序的操作代码的文章就介绍到这了,更多相关Python成绩排序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • Python实现EXCEL表格的排序功能示例
    • python文件排序的方法总结
    • Python CategoricalDtype自定义排序实现原理解析
    • 用python给csv里的数据排序的具体代码
    上一篇:python识别围棋定位棋盘位置
    下一篇:基于python定位棋子位置及识别棋子颜色
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Python 处理表格进行成绩排序的操作代码 Python,处理,表格,进行,成绩,