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 运算符 供重载参考
Jun 11 Python
推荐11个实用Python库
Jan 23 Python
Python的SQLAlchemy框架使用入门
Apr 29 Python
Python判断直线和矩形是否相交的方法
Jul 14 Python
python微信跳一跳系列之色块轮廓定位棋盘
Feb 26 Python
取numpy数组的某几行某几列方法
Apr 03 Python
python线程池threadpool使用篇
Apr 27 Python
Python实现朴素贝叶斯分类器的方法详解
Jul 04 Python
对python实现二维函数高次拟合的示例详解
Dec 29 Python
Python处理时间日期坐标轴过程详解
Jun 25 Python
150行Python代码实现带界面的数独游戏
Apr 04 Python
pytorch中的model.eval()和BN层的使用
May 22 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版(5)
2006/10/09 PHP
PHP4实际应用经验篇(2)
2006/10/09 PHP
thinkphp5修改view到根目录实例方法
2019/07/02 PHP
DIV外区域Click后关闭DIV的实现代码
2011/12/21 Javascript
NodeJS的模块写法入门(实例代码)
2012/03/07 NodeJs
关于onchange事件在IE和FF下的表现及解决方法
2014/03/08 Javascript
用javascript关闭本窗口技巧小结
2014/09/05 Javascript
IE中鼠标经过option触发mouseout的解决方法
2015/01/29 Javascript
JavaScript中的DSL元编程介绍
2015/03/15 Javascript
JS判断当前页面是否在微信浏览器打开的方法
2015/12/08 Javascript
jquery实现界面无刷新加载登陆注册
2016/07/30 Javascript
VUE中使用Vue-resource完成交互
2017/07/21 Javascript
vue随机验证码组件的封装实现
2020/02/19 Javascript
JS通过识别id、value值对checkbox设置选中状态
2020/02/19 Javascript
原生js实现弹窗消息动画
2020/11/20 Javascript
使用Python脚本操作MongoDB的教程
2015/04/16 Python
Python实现将通信达.day文件读取为DataFrame
2018/12/22 Python
Python3使用Matplotlib 绘制精美的数学函数图形
2019/04/11 Python
python中字典按键或键值排序的实现代码
2019/08/27 Python
python实现复制文件到指定目录
2019/10/16 Python
在python中计算ssim的方法(与Matlab结果一致)
2019/12/19 Python
django 获取字段最大值,最新的记录操作
2020/08/09 Python
Django后端按照日期查询的方法教程
2021/02/28 Python
CSS3 rgb and rgba(透明色)的使用详解
2020/09/25 HTML / CSS
天猫精选:上天猫,就够了
2016/09/21 全球购物
新闻编辑自荐信
2013/11/03 职场文书
初二学习计划书范文
2014/04/27 职场文书
美术专业自荐信
2014/07/07 职场文书
关于读书的演讲稿800字
2014/08/27 职场文书
少先队活动总结
2014/08/29 职场文书
自我推荐信格式模板
2015/03/24 职场文书
2016年教师节慰问信
2015/12/01 职场文书
导游词之平津战役纪念馆
2019/11/04 职场文书
Python基础之函数嵌套知识总结
2021/05/23 Python
Redis实现短信验证码登录的示例代码
2022/06/14 Redis
前端框架ECharts dataset对数据可视化的高级管理
2022/12/24 Javascript