您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:Python 处理表格进行成绩排序的操作代码

51自学网 2021-10-30 22:25:09
  python
这篇教程Python 处理表格进行成绩排序的操作代码写得很实用,希望能帮到您。

一、需求分析

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

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

二、代码呈现

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

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

代码以及解释如下:

import xlwtimport 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成绩排序内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net!


python识别围棋定位棋盘位置
基于python定位棋子位置及识别棋子颜色
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。