这篇文章主要介绍了Python 处理表格进行成绩排序,也就是说将学生从按照学号排序变为按照成绩从高到低进行排序,具体实现代码跟随小编一起看看吧

一、需求分析

我们首先有一个成绩表单,但是学生的成绩是按照学号进行排序的,现在,我们希望清晰明了的知道每一个学生的名次,并且需要将学生按照成绩的高低重新进行排序。

也就是说,我们将学生从按照学号排序转变为按照成绩从高到低进行排序。

二、代码呈现

这个需求其实比较简单,于是,我们直接呈现代码,主要问题www.jsr9.com是Excel表格的读写操作,这个解决以后就十分简单了。

Excel读:xlrd模块
Excel写:xlwt模块

代码以及解释如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

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)

    # 获取数据

    # 进行一定的预处理,去除不存在的人

    # 意思是说:有些位置是空的,这些位置www.1818xinwen.com需要去除掉

    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'

# 保存

在这里,我们使用了冒泡排序,当然,如果想要运行的更快一些,可以www.qmia.cn考虑希尔排序,堆排序,快速排序等排序方式,但是要注意,学号、姓名、分数一定要同时进行排序,就是说这三个量应该捆绑在一起移动,而移动的原则就是分数高低。

图片1、

图片2、


图片3、

图片4、

到此这篇关于Python 处理表格进行成绩排序的操作代码的文章

Python 处理表格进行成绩排序的操作代码相关推荐

  1. python逐行读取excel_python对execl 处理操作代码

    1. 读取execl 1.前提需要安装xlrd模块,这个在网上可以找安装教程,这里就不写了 2. 打开表格 3. 读取表格的sheet 4. 按行读取数据或者列读取数据或者单元格读取数据 实际操作: ...

  2. python合并表格矩阵并排序_在Python中,将多个列的列表排列成一个矩阵

    我不知道你是不是从文件里读到了数字块.但假设你已经有了 数据.在 另外,假设结果块的列数无关,这里的问题是保持数量N.正确的?在block_1 = [ [1, 6, 11], [2, 7, 12], ...

  3. python基础编程 统计英语文章词频并排序 文本操作 继承

    python编程 统计英语文章词频 文本操作 继承 统计英语6级试题中所有单词的词频,并对词频进行排序 import re# 请根据处理要求下面区域完成代码的编写. def get_artical(a ...

  4. Python以表格、可视化图像的形式输出模型特征重要度(feature importances)并进行重要度归一化及排序

    Python以表格.可视化图像的形式输出模型特征重要度(feature importances)并进行重要度归一化及排序 目录

  5. php表格单元格怎么实现排序,javascript实现对表格元素进行排序操作

    我们在上网中都能看到很多能够排序的,如大小.时间.价格等 现在我们也试一下排序功能: 排序的函数代码:里面含有点击之后排序--还原,和排升序和降序. function sortAge(){ //对年龄 ...

  6. 1.10 编程基础之简单排序 03 成绩排序 3分 python

    http://noi.openjudge.cn/ch0110/03/ """ 1.10 编程基础之简单排序 03 成绩排序 3分 http://noi.openjudge ...

  7. 学习Python必刷的100道经典实战练习真题(第010集 怎样对简单列表元素排序-第011集 怎样实现学生成绩排序)

    学习Python必刷的100道经典实战练习真题(第010集 怎样对简单列表元素排序-第011集 怎样实现学生成绩排序) 一,第010集 怎样对简单列表元素排序 二,第011集 怎样实现学生成绩排序 来 ...

  8. python如何清空excel表格_python 删除excel表格重复行,数据预处理操作

    使用python删除excel表格重复行. # 导入pandas包并重命名为pd import pandas as pd # 读取Excel中Sheet1中的数据 data = pd.DataFram ...

  9. python成绩排名 排序_成绩排序 (Python代码)

    前提申明:我使用了两种解法但是结果都是错误50%,但没有找到问题所在,自己测试 了几组特殊数据排序正确的 分析: 方法一:先按成绩冒泡排序,再按名字冒泡排序,再按年龄冒泡排序 方法二:以成绩为排序要点 ...

最新文章

  1. Route 66地图安装的一个简单方法,在N70上验证过
  2. bzoj千题计划143:bzoj1935: [Shoi2007]Tree 园丁的烦恼
  3. 扫盲了!一个Java字符串中到底有多少个字符?
  4. OpenGL Gamma Correction伽马校正的实例
  5. 机器学习集群_机器学习中的多合一集群技术在无监督学习中应该了解
  6. mysql 主从 keepalived_MySQL之双向主从加keepalived高可用
  7. Android acache读后感
  8. java仿qq gui_Java仿QQ登入页面
  9. php 随机数 名称,php – 从标题更改为随机数
  10. 【ASP.NET Web API教程】5.2 发送HTML表单数据:URL编码的表单数据
  11. javascript async await
  12. solr 高并发_你真的了解并发编程吗?
  13. C语言杂谈——指针篇
  14. Github上传代码到main分支
  15. 理解 BLS 签名算法
  16. 《工业控制系统信息安全防护指南》产品措施匹配表
  17. js 取表格table td值 botton a
  18. windows7 配置php开发环境
  19. Linux 内核编译
  20. jQuery从入门到进阶视频教程-汤小洋-专题视频课程

热门文章

  1. 【OpenCv】图像分割——分水岭算法
  2. 四、Echart图表 之 颜色color配置项大全
  3. ICML 2020 | SCAFFOLD:联邦学习的随机控制平均
  4. mysql和JDBC学习
  5. vim 退格键(backspace)不能用
  6. JAVA微商城_O2O微门店SAAS系统
  7. 烽火2640路由器命令行手册-04-网络协议配置命令
  8. 网络模型(ISO,TCP/IP)
  9. 计算机配置8c16g,腾讯云服务器价格表(1核2G/2核4G/4核8G/8核16G配置)
  10. EDK2 Build Flow