专业编程基础技术教程

网站首页 > 基础教程 正文

python处理Excel实战进阶篇day10(处理期末考试学科等级及偏科)

ccvgpt 2025-02-06 14:11:39 基础教程 1 ℃

实例10—快速处理期末考试成绩等级和偏科

模拟场景需求:

全国一盘 棋,贯彻双减工作要求,从三年级开始才进行期末考试,并且不能公布成绩,所以我们采取一致坚持的等级公布方式,ABCDE五个等级,还有简单检测学生是否存在语数偏科现象,当然可以通过Excel进行操作,这里主要是讲解Python的第三方库openpyxl的实践问题。

1、用到的知识点:

python处理Excel实战进阶篇day10(处理期末考试学科等级及偏科)

Python的判断和循环,自定义函数,wb对象基本操作包括创建和保存,cell单元格的读取和写入等。

2、用到的文件:

期末考试成绩单,要求是xlsx扩展名的,非隐私数据

3、代码操作编写截图:

give your the code:

from openpyxl import Workbook,load_workbook

# 等级函数,根据分数返回ABCDE级别
def level(grade=0):
    grade = int(grade)
    if grade >= 90:
        ret = 'A'
    elif grade >= 80:
        ret = 'B'
    elif grade >= 70:
        ret = 'C'
    elif grade >= 60:
        ret = 'D'
    else:
        ret = 'E'
    return ret
# 简单定义偏科函数
def gap(a=0,b=0):
    var = abs(a-b)
    if var >= 30:
        ret = '严重偏科'
    elif var >= 20:
        ret = '偏科'
    elif var >= 10:
        ret = '稍微偏科'
    elif var >= 0:
        ret = '不偏科'
    return ret

# 导入成绩表格
wb = load_workbook('total.xlsx')
ws = wb.active
# 循环处理行
for i in range(3,ws.max_row+1):
    chinese_level = level(ws.cell(i,3).value) # 判断语文等级
    ws.cell(i,4).value = chinese_level # 以写返回值的方式写入语文等级
    math_level = level(ws.cell(i,5).value) # 判断数学等级
    ws.cell(i,6).value = math_level # 同样方式写入数学等级
    ws.cell(i,7).value = f"=sum(C{i},E{i})" # 以写入好函数的方式写入总分
    # 简单判断是否偏科
    ws.cell(i,8).value = gap(ws.cell(i,3).value,ws.cell(i,5).value)

wb.save('ok.xlsx')

今天的例子要活学活用,关键练基础,熟悉python的openpyxl处理表格的思路,愿一路学习一路有你,操作基础已经更新完毕,不懂可以参阅<python办公自动化openpyxl处理excel(基础篇)>

最近发表
标签列表