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


Posted in Python onJuly 26, 2021

一、需求分析

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

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

二、代码呈现

这个需求其实比较简单,于是,我们直接呈现代码,主要问题是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、

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

图片2、

Python 处理表格进行成绩排序的操作代码
图片3、

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

图片4、

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

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

Python 相关文章推荐
比较详细Python正则表达式操作指南(re使用)
Sep 06 Python
Python脚本实现网卡流量监控
Feb 14 Python
Python装饰器使用实例:验证参数合法性
Jun 24 Python
python实现下载整个ftp目录的方法
Jan 17 Python
Python中进程和线程的区别详解
Oct 29 Python
python实现机器学习之元线性回归
Sep 06 Python
python中dict字典的查询键值对 遍历 排序 创建 访问 更新 删除基础操作方法
Sep 13 Python
Python简单基础小程序的实例代码
Apr 28 Python
python实现集中式的病毒扫描功能详解
Jul 09 Python
基于Python实现船舶的MMSI的获取(推荐)
Oct 21 Python
tensorflow自定义激活函数实例
Feb 04 Python
python mock测试的示例
Oct 19 Python
python识别围棋定位棋盘位置
python之基数排序的实现
Jul 26 #Python
python之PySide2安装使用及QT Designer UI设计案例教程
python代码实现备忘录案例讲解
Jul 26 #Python
python之django路由和视图案例教程
Jul 26 #Python
OpenCV图像变换之傅里叶变换的一些应用
Python类方法总结讲解
You might like
PHP实现图片简单上传
2006/10/09 PHP
php导出word文档与excel电子表格的简单示例代码
2014/03/08 PHP
php一个解析字符串排列数组的方法
2015/05/12 PHP
php面向对象与面向过程两种方法给图片添加文字水印
2015/08/26 PHP
在CentOS系统上从零开始搭建WordPress博客的全流程记录
2016/04/21 PHP
在html页面上拖放移动标签
2010/01/08 Javascript
JavaScript中为什么null==0为false而null大于=0为true(个人研究)
2013/09/16 Javascript
JS实现匀速运动的代码实例
2013/11/29 Javascript
JavaScript中的正则表达式简明总结
2014/04/04 Javascript
jQuery学习笔记之toArray()
2014/06/09 Javascript
JavaScript语言对Unicode字符集的支持详解
2014/12/30 Javascript
JavaScript中使用Math.floor()方法对数字取整
2015/06/15 Javascript
详解javascript获取url信息的常见方法
2016/12/19 Javascript
angular实现表单验证及提交功能
2017/02/01 Javascript
JS字符串false转boolean的方法(推荐)
2017/03/08 Javascript
jquery dataTable 获取某行数据
2017/05/05 jQuery
详解React 在服务端渲染的实现
2017/11/16 Javascript
vue实现输入框的模糊查询的示例代码(节流函数的应用场景)
2019/09/01 Javascript
Python基于百度AI的文字识别的示例
2018/04/21 Python
解决pandas使用read_csv()读取文件遇到的问题
2018/06/15 Python
Python装饰器模式定义与用法分析
2018/08/06 Python
Python实现高斯函数的三维显示方法
2018/12/29 Python
python字符串的拼接方法总结
2019/11/18 Python
将pytorch转成longtensor的简单方法
2020/02/18 Python
解决Python中导入自己写的类,被划红线,但不影响执行的问题
2020/07/13 Python
Django实现简单的分页功能
2021/02/22 Python
Html5移动端获奖无缝滚动动画实现示例
2018/06/25 HTML / CSS
伦敦眼门票在线预订:London Eye
2018/05/31 全球购物
主键(Primary Key)约束和唯一性(UNIQUE)约束的区别
2013/05/29 面试题
师范生自荐信
2013/10/27 职场文书
公司市场部岗位职责
2013/12/02 职场文书
厂长岗位职责
2014/02/19 职场文书
《阳光》教学反思
2014/02/23 职场文书
中药学专业求职信
2014/05/31 职场文书
党的群众路线批评与自我批评范文
2014/10/16 职场文书
测量员岗位职责
2015/02/14 职场文书