用python求所有分数的平均分_用 Python 对成绩分类汇总!

本文介绍如何使用Python实现一个成绩管理系统,包括加载成绩和考核方式,合并数据,处理非法数据,以及计算学业总平均分和考试课平均分。通过详细步骤展示从数据获取到算法实现的全过程。
摘要由CSDN通过智能技术生成

这学期我们每个人需要填写三张学年鉴定表,每一张表中都有学业总平均分和考试课平均分两项内容,如果想用手工的方式算出这两项内容不知道要花多久,所以我建议编写一个算法(Excel 的函数啥的本质上也是算法)计算这两项内容,下面我就以我的成绩为例讲一下用 Python 算出这两项内容的步骤。

概述

我们打开学校的教务系统,如图所示。

点击成绩查询,如图所示。

随后选择某一学年,然后点击按学年查询,如图所示。

我们可以发现这里只有成绩,没有考核方式,而且里面有非法数据,比如所谓的“合格”。我们暂时先不处理这些非法数据,先找到考核方式在哪里,如图所示。

点击培养计划,如图所示。

这样就可以看到考核方式了,然后把建议修读学期改成全部,其他不变,如图所示。

可以发现它默认是分页显示,每页显示 10 条数据,然而我们需要一页显示所有数据。我这边总共 59 条数据,每页显示 10 条数据,那么我们直接把每页显示的数据条数改成大于等于 59 不就可以了吗?在这里我改成 60,如图所示。

既然数据找到了,那么算法实现起来就简单了,根据课程代码(如果课程名称唯一,也可以根据课程名称,我是根据课程名称进行合并的)把每一学年的成绩和考核方式合并到一张表中。

新建项目

我们用 PyCharm 新建一个 Scientific 项目,项目名称和目录随便(因为是对成绩进行分类汇总,所以我就把项目叫做 GradeSummary),如图所示。

点击 CREATE,等待片刻后如图所示。

接下来在 data 目录里面新建两个 Excel 文件,名称如图所示。

然后打开名为成绩统计.xlsx,在里面创建三个 sheet,如图所示。

接着去教务系统成绩查询页,把第一学年的成绩数据放到第一个 sheet,第二学年的放到第二个 sheet,第三学年的放到第三个 sheet,如图所示。

如果和上图的格式差不多就可以保存关闭,打开考核方式统计.xlsx,去教务系统把考核方式数据复制到这个 workbook 的第一张工作表中,如图所示。

如果格式和上图格式差不多就可以保存关闭了。

算法实现

算法的实现过程比较简单,分为以下几步:载入成绩,载入考核方式,合并,处理,计算总平均分,计算考试科平均分。(过程的顺序不唯一,比如载入成绩和载入考核方式可以互换)。

下面就可以搭建一个框架了,代码如下:

class GradeSummary:

def __init__(self):

pass

def load_grade(self):

pass

def load_assessment_method(self):

pass

def merge(self):

pass

def process(self):

pass

def calculate_all_average(self):

pass

def calculate_examination_average(self):

pass

if __name__ == '__main__':

grade_summary = GradeSummary()

grade_summary.load_grade()

grade_summary.load_assessment_method()

grade_summary.merge()

grade_summary.process()

grade_summary.calculate_all_average()

grade_summary.calculate_examination_average()

01

初始化

在其中我们需要三个数据集列表,一个是存放成绩数据,一个是存放考核方式数据,还有一个是存放合并后的数据。每个列表中有三个元素(第几个元素就对应第几学年)。另外我们还需要一个学年的序列,因为要算每一学年的学业总平均分和考试课平均分。知道这些写出构造方法就是轻而易举了,代码如下:

def __init__(self):

self.dataset_list1 = [{'课程名称': [], '成绩': []}, {'课程名称': [], '成绩': []},

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值