Python 处理表格进行成绩排序的操作代码
作者:hhh_Moon_hhh 发布时间:2022-08-25 02:49:36
标签:Python,成绩,排序
一、需求分析
我们首先有一个成绩表单,但是学生的成绩是按照学号进行排序的,现在,我们希望清晰明了的知道每一个学生的名次,并且需要将学生按照成绩的高低重新进行排序。
也就是说,我们将学生从按照学号排序转变为按照成绩从高到低进行排序。
二、代码呈现
这个需求其实比较简单,于是,我们直接呈现代码,主要问题是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、
图片2、
图片3、
图片4、
来源:https://blog.csdn.net/m0_54218263/article/details/119053466


猜你喜欢
- Mybatis报错: org.apache.ibatis.exceptions.PersistenceException解决办法一、问题描述
- python——pip install xxx报错SyntaxError: invalid syntax在安装好python后,进入pyth
- 简介本文主要给大家介绍了关于go语言安装使用protobuf的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。pr
- 一点背景知识OpenCV 是一个开源的计算机视觉和机器学习库。它包含成千上万优化过的算法,为各种计算机视觉应用提供了一个通用工具包。根据这个
- OS模块import os1.返回操作系统类型 :posix 是linux操作系统,nt 是windows操作系统print(os.name
- 本文实例讲述了JavaScript设计模式之享元模式。分享给大家供大家参考,具体如下:通过两个例子的对比来凸显享元模式的特点:享元模式是一个
- Pycharm运行程序时,控制台输出PyDev console:starting1、问题:写好程序后,点击Run运行,控制台如下图所示提示P
- __str__函数如果定义了该函数,当print当前实例化对象的时候,会返回该函数的return信息可用于定义当前类的描述信息用法:def
- 近日在Ubuntu上安装了一个 MySQL 5.0,因为使用 phpMyAdmin 还必须安装 PHP,所以打算直接使用远程管理工具Navi
- 本文实例讲述了Python生成rsa密钥对操作。分享给大家供大家参考,具体如下:# -*- coding: utf-8 -*-import
- 本文实例为大家分享了js实现简单贪吃蛇效果的具体代码,供大家参考,具体内容如下上代码之前,先给大家看一下效果:是不是想说:我能这样玩一天…话
- 前言我们在django-rest-framework 自定义swagger 文章中编写了接口, 调通了接口文档. 接口文档可以直接填写参数进
- 从一个 Demo 入手为了快速进入状态,我们先搞一个 Demo,当然这个 Demo 是参考 Go 源码 src/net/rpc/s
- MySQL Version确认(版本确认)的几个方法1.SHOW VARIABLES LIKE 'VERSION';mysq
- 模拟浏览器进行网页加载,当requests,urllib无法正常获取网页内容的时候一、声明浏览器对象注意点一,Python文件名或者包名不要
- 1.SQL SERVER的数据类型 数据类弄是数据的一种属性,表示数据所表示信息的类型。任何一种计算机语言都定义了自己的数据类型。当然,不同
- 首先以只读方式打开单词文件,利用列表推导式创建两个列表列表sta记录各单词出现的次数,列表freq记录各单词出现的频率f = open(
- 前言N年前 Laravel 刚面世时,的确让很多人眼前一亮,众人惊呼原来 PHP 代码还可以写得这么简洁优雅。本文主要介绍的是关于larav
- Pycharm使用cv2无法安装很多学python的朋友们都会使用一个编译器,叫做Pycharm,这个编译器我也在用,那么同时在使用时也会出
- 1.什么是接口接口就是一种规范与标准,在生活中经常见接口,例如:笔记本电脑的USB接口,可以将任何厂商生产的鼠标与键盘,与电脑进行链接。为什