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中wx将图标显示在右下角的脚本代码
Mar 08 Python
ptyhon实现sitemap生成示例
Mar 30 Python
详解Python中的静态方法与类成员方法
Feb 28 Python
Python使用flask框架操作sqlite3的两种方式
Jan 31 Python
python3+PyQt5+Qt Designer实现堆叠窗口部件
Apr 20 Python
Python 数值区间处理_对interval 库的快速入门详解
Nov 16 Python
django列表筛选功能的实现代码
Mar 27 Python
VS2019+python3.7+opencv4.1+tensorflow1.13配置详解
Apr 16 Python
如何基于Python Matplotlib实现网格动画
Jul 20 Python
Python爬虫使用bs4方法实现数据解析
Aug 25 Python
python处理写入数据代码讲解
Oct 22 Python
Python基础之tkinter图形化界面学习
Apr 29 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下保存远程图片到本地的办法
2010/08/08 PHP
php 流程控制switch的简单实例
2016/06/07 PHP
详解使用php调用微信接口上传永久素材
2017/04/11 PHP
PHP实现根据数组的值进行分组的方法
2017/04/20 PHP
yii2中关于加密解密的那些事儿
2018/06/12 PHP
接收键盘指令的脚本
2006/06/26 Javascript
父窗口获取弹出子窗口文本框的值
2006/06/27 Javascript
JavaScript立即执行函数的三种不同写法
2014/09/05 Javascript
jquery实现表单验证并阻止非法提交
2015/07/09 Javascript
javascript实现类似百度分享功能的方法
2015/07/27 Javascript
JavaScript实现将数组数据添加到Select下拉框的方法
2015/08/21 Javascript
js实现商城星星评分的效果
2015/12/29 Javascript
jquery及js实现动态加载js文件的方法
2016/01/21 Javascript
一篇文章掌握RequireJS常用知识
2016/01/26 Javascript
基于Node.js + WebSocket打造即时聊天程序嗨聊
2016/11/29 Javascript
Vue.js实战之使用Vuex + axios发送请求详解
2017/04/04 Javascript
JavaScript框架Angular和React深度对比
2017/11/20 Javascript
小程序云开发初探(小结)
2018/10/24 Javascript
ionic3双击返回退出应用的方法
2019/09/17 Javascript
jquery实现手风琴案例
2020/05/04 jQuery
Python中的左斜杠、右斜杠(正斜杠和反斜杠)
2016/08/30 Python
深入理解python中的atexit模块
2017/03/07 Python
使用pandas读取csv文件的指定列方法
2018/04/21 Python
python使用turtle库绘制奥运五环
2020/02/24 Python
python删除某个目录文件夹的方法
2020/05/26 Python
基于python实现计算两组数据P值
2020/07/10 Python
Python虚拟环境virtualenv创建及使用过程图解
2020/12/08 Python
手把手教你用Django执行原生SQL的方法
2021/02/18 Python
俄罗斯女装店:12storeez
2019/10/25 全球购物
美国在线肉类和海鲜配送:Crowd Cow
2020/10/02 全球购物
公益广告语集锦
2014/03/13 职场文书
大学生求职信例文
2014/06/29 职场文书
五一活动标语
2014/06/30 职场文书
消防宣传语大全
2015/07/13 职场文书
初中英语教师个人工作总结2015
2015/07/21 职场文书
PostgreSQL怎么创建分区表详解
2022/06/25 PostgreSQL