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之编写类之三子类
Oct 11 Python
Python实现新浪博客备份的方法
Apr 27 Python
python使用Matplotlib画饼图
Sep 25 Python
selenium+python截图不成功的解决方法
Jan 30 Python
python 应用之Pycharm 新建模板默认添加编码格式-作者-时间等信息【推荐】
Jun 17 Python
python调试神器PySnooper的使用
Jul 03 Python
Python进程,多进程,获取进程id,给子进程传递参数操作示例
Oct 11 Python
windows python3安装Jupyter Notebooks教程
Apr 13 Python
Python bisect模块原理及常见实例
Jun 17 Python
Python实现爬取并分析电商评论
Jun 19 Python
Python hashlib模块的使用示例
Oct 09 Python
Python 求向量的余弦值操作
Mar 04 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
全国FM电台频率大全 - 12 安徽省
2020/03/11 无线电
解析thinkphp中的导入文件标签
2013/06/20 PHP
PHP版微信公众平台红包API
2015/04/02 PHP
用js+xml自动生成表格的东西
2006/12/21 Javascript
(function($){...})(jQuery)的意思
2010/07/22 Javascript
jQuery实现文件上传进度条特效
2015/08/12 Javascript
js中对函数设置默认参数值的3种方法
2015/10/23 Javascript
Js实现简单的小球运动特效
2016/02/18 Javascript
ajax跨域调用webservice的实现代码
2016/05/09 Javascript
vue利用v-for嵌套输出多层对象,分别输出到个表的方法
2018/09/07 Javascript
微信小程序生成海报分享朋友圈的实现方法
2019/05/06 Javascript
html2canvas属性和使用方法以及如何使用html2canvas将HTML内容写入Canvas生成图片
2020/01/12 Javascript
Vue实现穿梭框效果
2020/09/30 Javascript
详解Python中contextlib上下文管理模块的用法
2016/06/28 Python
Python基于回溯法子集树模板解决最佳作业调度问题示例
2017/09/08 Python
python实现数据预处理之填充缺失值的示例
2017/12/22 Python
Python实现替换文件中指定内容的方法
2018/03/19 Python
python pytest进阶之fixture详解
2019/06/27 Python
Pandas实现dataframe和np.array的相互转换
2019/11/30 Python
Python工程师必考的6个经典面试题
2020/06/28 Python
python爬虫构建代理ip池抓取数据库的示例代码
2020/09/22 Python
Python类的继承super相关原理解析
2020/10/22 Python
通过HTML5规范搞定i、em、b、strong元素的区别
2017/03/04 HTML / CSS
电子商务自荐书范文
2014/01/04 职场文书
办公室文员自荐书
2014/02/03 职场文书
年会搞笑主持词串词
2014/03/24 职场文书
教师中国梦演讲稿
2014/04/23 职场文书
解除聘用合同证明书范本
2014/09/11 职场文书
夫妻房产协议书的格式
2014/10/11 职场文书
2014年党建工作汇报材料
2014/10/27 职场文书
党的群众路线教育实践活动个人对照检查材料(企业)
2014/11/05 职场文书
2015年法院工作总结范文
2015/04/28 职场文书
2016大学生求职自荐信范文
2016/01/28 职场文书
导游词之金鞭溪风景区
2019/09/12 职场文书
python获取淘宝服务器时间的代码示例
2021/04/22 Python
win11怎么用快捷键锁屏? windows11锁屏的几种方法
2021/11/21 数码科技