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写的Socks5协议代理服务器
Aug 06 Python
python2.7 mayavi 安装图文教程(推荐)
Jun 22 Python
Python3 中文文件读写方法
Jan 23 Python
利用python为运维人员写一个监控脚本
Mar 25 Python
Python中pandas模块DataFrame创建方法示例
Jun 20 Python
Python多进程方式抓取基金网站内容的方法分析
Jun 03 Python
Python提取PDF内容的方法(文本、图像、线条等)
Sep 25 Python
Pytorch 实现focal_loss 多类别和二分类示例
Jan 14 Python
python实现俄罗斯方块游戏(改进版)
Mar 13 Python
python Selenium 库的使用技巧
Oct 16 Python
anaconda升级sklearn版本的实现方法
Feb 22 Python
python反编译教程之2048小游戏实例
Mar 03 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
【星际争霸1】人族1v7家ZBath
2020/03/04 星际争霸
PHP 木马攻击防御技巧
2009/06/13 PHP
php 目录遍历、删除 函数的使用介绍
2013/04/28 PHP
php中的boolean(布尔)类型详解
2013/10/28 PHP
php实现在服务器上创建目录的方法
2015/03/16 PHP
隐藏Nginx或Apache以及PHP的版本号的方法
2016/01/03 PHP
PHP文字转图片功能原理与实现方法分析
2017/08/31 PHP
jQuery 行级解析读取XML文件(附源码)
2009/10/12 Javascript
javascript一个无懈可击的实例化XMLHttpRequest的方法
2010/10/13 Javascript
javascript复制对象使用说明
2011/06/28 Javascript
通过JS获取用户本地图片路径并显示的代码
2012/02/16 Javascript
jquery 自定义容器下雨效果可将下雨图标改为其他
2014/04/23 Javascript
浅析jQuery EasyUI中的tree使用指南
2014/12/18 Javascript
jQuery中 attr() 方法使用小结
2015/05/03 Javascript
基于JavaScript实现高德地图和百度地图提取行政区边界经纬度坐标
2016/01/22 Javascript
jQuery实现选项联动轮播效果【附实例】
2016/04/19 Javascript
jQuery实现自动输入email、时间和域名的方法
2016/08/24 Javascript
谈谈对JavaScript原生拖放的深入理解
2016/09/20 Javascript
几种tab切换详解
2017/02/03 Javascript
JavaScrip数组删除特定元素的几种方法总结
2017/09/06 Javascript
微信小程序实现手指触摸画板
2018/07/09 Javascript
vue回到顶部监听滚动事件详解
2019/08/02 Javascript
python中的字典详细介绍
2014/09/18 Python
python简单分割文件的方法
2015/07/30 Python
pandas数据清洗,排序,索引设置,数据选取方法
2018/05/18 Python
opencv-python 读取图像并转换颜色空间实例
2019/12/09 Python
如何表示python中的相对路径
2020/07/08 Python
python中doctest库实例用法
2020/12/31 Python
HTML5实现晶莹剔透的雨滴特效
2014/05/14 HTML / CSS
Unineed中文官网:高端护肤美妆与时尚配饰,英国直邮
2020/07/23 全球购物
成教毕业生自我鉴定
2013/10/23 职场文书
专项法律服务方案
2014/06/11 职场文书
晚会闭幕词
2015/01/28 职场文书
幼儿园小班个人总结
2015/02/12 职场文书
2019年大学生职业生涯规划书最新范文
2019/03/25 职场文书
python 如何执行控制台命令与操作剪切板
2021/05/20 Python