您的位置 首页 > 数码极客

python4个if条件如何并列书写

我是高中的一名信息技术老师,喜欢学习python,用python编程解决生活工作中的问题是我的兴趣爱好。

每当学校组织考试的时候,最忙的莫过于级部干事了。考试成绩出来后,需要汇总一卷成绩,然后再导入二卷成绩进行每科求和,最后汇总总成绩并进行排名次。这一套程序下来,没半天功夫根本完成不了,而且还很容易出错。

这里面最大的困难在于学生考的选科的科目的考号不是连续的,导入二卷对应到一卷的考号是很难实现的,学生现在是选课制,不是以前的大文大理,语数英是必选科目,一卷与二卷合成很简单,复制粘贴列再求和就完成了,而选科的就不能复制粘贴列了,因为考号不连续,复制粘贴进去就错位了,当然用电子表格的特殊函数也能实现,就是比较麻烦。我用python编程就很容易解决了这个难题,每科的二卷导入并合成基本是秒完成,最后求总成绩以及排名次也是秒完成。现在我先提供一个实现汇总总成绩并排名次的程序,其它的导入一卷和二卷并合成单科成绩的程序再另外介绍。

现在考试成绩的工作簿有2个工作表,第一个工作表存放学生的考号、姓名和10科的一卷二卷以及科目总成绩(我们学校的外语有小语种,所以就变成了10科),第2个工作表叫“汇总”,存放学生的考号姓名,运行程序后会写入每科总成绩以及所有科的总成绩和总名次。


第一个工作表存放的部分数据,右边还有其它科的二卷和总分成绩

import xlrd from xlu import copy wb=xlrd.open_workbook('3模.xls') ws=wb.sheet_by_index(0) #第一个工作表里存放学生一卷二卷和所有科目的成绩 nwb=copy(wb) #复制工作簿 nws=nwb.get_sheet('汇总') #在复制的工作簿中获取名称为‘汇总’的工作表 l=['语文总分','数学总分','英语总分','物理总分','化学总分','政治总分','历史总分','地理总分','生物总分','日语总分'] row1=ws.row_values(0) r=0;l1=[];l2=[];num=[];x=0 for i in l: num+=[row1.index(i)] nws.write(0,2+x,i) #第1行从第3列开始分别写入表头 x+=1 print(num) #查看输出列表l里的元素所对应的下标,下标都放在列表num里 while r<ws.nrows-1: r += 1 key=ws.cell_value(r,0) #变量key存放第一列数据(学生的考号) val=[ws.cell_value(r,num[0]),ws.cell_value(r,num[1]),ws.cell_value(r,num[2]),ws.cell_value(r,num[3]),ws.cell_value(r,num[4]), ws.cell_value(r,num[5]),ws.cell_value(r,num[6]),ws.cell_value(r,num[7]),ws.cell_value(r,num[8]),ws.cell_value(r,num[9])] #10科的成绩所在的列的值都放到val中 for j in range(10): nws.write(r,2+j,val[j]) #从第1行第3列开始分别写入成绩 for i in val: if i!='': l1+=[i] #把有数值的数据都放到列表l1中 l2 += [(key,l1)] #每个学生的考号和6科成绩组成元组放到列表l2中 l1=[] #将列表l1数据清零,设置为空列表 d=dict(l2) #列表l2转换成字典 nws.write(0,12,'总成绩') #在第13列写入表头‘总成绩’ nws.write(0,13,'总名次') #在第14列写入表头‘总名次’ n=1;m=0 mc=ws.nrows#总行数(学生数+1) for k in d: for m in d: if sum(d[k])>=sum(d[m]):#每个学生的成绩大于等于多少个学生的成绩就把总行数减去这个数就是名次 mc-=1 nws.write(n,13,mc) mc=ws.nrows#复位总行数 nws.write(n,12,sum(d[k])) #在第13列开始写入总成绩,字典d里的键值为存放6科成绩的列表,用sum函数求列表里元素的和 n += 1 nwb.save('3模.xls') #保存为原文件名字,更新原工作表里的数据


这是程序运行后‘汇总’工作表里的结果

程序运行的时候会自动从第一个工作表中寻找各科的总分所在的列,并把10科的成绩都复制到“汇总”工作表里,然后对10科进行求和计算总成绩,同时计算名次并写入。

如果担心程序运行后会破坏原文件,可在最后一行代码保存的文件名换成别的,检查没有错误后再保存成原文件名,实现在原文件里修改的效果。

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“python4个if条件如何并列书写”边界阅读