用Python怎样实现学生成绩表格从高到低排序
Admin 2022-09-19 群英技术资讯 449 次浏览
我们首先有一个成绩表单,但是学生的成绩是按照学号进行排序的,现在,我们希望清晰明了的知道每一个学生的名次,并且需要将学生按照成绩的高低重新进行排序。
也就是说,我们将学生从按照学号排序转变为按照成绩从高到低进行排序。
这个需求其实比较简单,于是,我们直接呈现代码,主要问题是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、
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
torchtext并不是pytorch所独有的,使用其它深度学习框架,torchtext仍然可以使用。但是比较麻烦的是,并没有很好很全面的torchtext教程,给同学们入门造成了一定麻烦,这也是我写这篇文章的目的。
在python中,在写列表代码时,难免会出错,那么如何删除列表中的元素呢?其实很简单,而且不止一种方法,下面我们来看看吧。
这篇文章主要介绍了使用Python怎样对pandas数据合并的操作,对大家学习Python具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章能有所收获,接下来小编带着大家一起了解看看。
这篇文章给大家分享的是用python实现文字版购物车功能的介绍。实现需求,效果及代码如下,是比较简易的效果,对大家学习和理解购物车功能的实现有一定的价值,因此分享给大家做个参考,文中示例代码介绍的非常详细,感兴趣的朋友接下来一起跟随小编看看吧。
内容介绍format方式其他扩展写法%方式总结format方式{:>}靠右对齐print('{0:>5}'.format('aa'))#占5个字符空间,0是format参数中的变量索引>
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008