使用该简短程序,将excel表格中的A+,A,A-,B+等转换成对应的百分制分数,再加和平均,并自动保存于excel表格中。
本文较为适合学生数次作业分数的最终统计,本例是将学生的八次作业转换成百分制并综合平均得到最终分数,并自动将每位学生的分数保存至对应位置。
使用程序转换分数之前:
程序如下:
import numpy as np import xlwings as xw def zhuanhuan(a): for i in range(len(a)): if a[i] == 'A+': a[i]=100 elif a[i] == 'A': a[i]=95 elif a[i] == 'A-': a[i]=90 elif a[i] == 'B+': a[i]=85 elif a[i] == 'B': a[i]=80 elif a[i] == 'B-': a[i]=75 elif a[i] == 'C+': a[i]=70 elif a[i] == 'C': a[i]=65 elif a[i] == 'C-': a[i]=60 else: a[i]=0 return a grades=xw.Book('grades.xls') #将excel表格保存至程序文件处,输入文件名 grade=grades.sheets[0] shu1=grade.range('e4:e69').value #需要转换的分数所在区域,第e列的第4行至第69行 shu1=zhuanhuan(shu1) shu1=np.array(shu1) shu2=grade.range('f4:f69').value #需要转换的分数所在区域 shu2=zhuanhuan(shu2) shu2=np.array(shu2) shu3=grade.range('g4:g69').value #需要转换的分数所在区域 shu3=zhuanhuan(shu3) shu3=np.array(shu3) shu4=grade.range('h4:h69').value #需要转换的分数所在区域 shu4=zhuanhuan(shu4) shu4=np.array(shu4) shu5=grade.range('i4:i69').value #需要转换的分数所在区域 shu5=zhuanhuan(shu5) shu5=np.array(shu5) shu6=grade.range('j4:j69').value #需要转换的分数所在区域 shu6=zhuanhuan(shu6) shu6=np.array(shu6) shu7=grade.range('k4:k69').value #需要转换的分数所在区域 shu7=zhuanhuan(shu7) shu7=np.array(shu7) shu8=grade.range('l4:l69').value #需要转换的分数所在区域 shu8=zhuanhuan(shu8) shu8=np.array(shu8) shu=(shu1+shu2+shu3+shu4+shu5+shu6+shu7+shu8)/800 #综合八次分数情况,得到平均分数 print(shu) shu=list(shu) grade.range('M4').options(transpose=True).value = shu #将平均分数保存至第M列第4行至69行 grades.save() grades.close()
使用程序转换分数之前: