全国计算机二级Python第18套-综合应用-46-问题1

某班学生评选-等奖学金,学生的10门主干课成绩存在考生文件夹下文件score.txt中,每行为一个学生的
信息,分别记录了学生学号、姓名以及10门课成绩,格式如下:
1820161043郑珉镐68 66 837756 73 6169 66 78
1820161044沈红伟91 7081 91 9680 7891 89 94
从这些学生中选出奖学金候选人,条件是:
总成绩排名在前10名;
全部课程及格(成绩大于等于60)。
问题1:给出按总成绩从高到低排序的前10名学生名单,并写入文件candidate0.txt,每行记录一个学生的
信息,分别为学生学号、姓名以及10门课成绩。补充考生文件夹下文件PY301-1.py,完成这-功能。
问题2:读取文件candidate0.txt,从中选出候选人,并将学号和姓名写入文件candidate.txt,格式如下:
1010112161722张三
1010112161728李四
补充考生文件夹下文件PY301-2.py,完成这一功能。

参考答案

  1.  
  2. L=[]#L中的元素是学生原始成绩和总成绩
  3.  
  4. #[['1820161043', '郑珉镐', '68', '66', '83', '77', 697],[],[]]
  5.  
  6. fi = open("score.txt","r")#此处可多行
  7.  
  8. fo = open("candidate0.txt","w")
  9.  
  10. lines = fi.readlines()
  11.  
  12. fi.close()
  13.  
  14. for line in lines:
  15.  
  16. #学生
  17.  
  18. st = line.strip().split()
  19.  
  20. sm = 0#总成绩
  21.  
  22. for i in range(1,11):#1,2,3,4,..10
  23.  
  24. sm += int(st[-i])
  25.  
  26. st.append(sm)
  27.  
  28. L.append(st)
  29.  
  30. L.sort(key=lambda x:x[-1],reverse=True)   #按学生总成绩从大到小排序
  31.  
  32. for i in range(10):  #此处可多行
  33.  
  34. fo.write(" ".join(L[i][:-1])+"\n")
  35.  
  36. fo.close()
  37.  

历年真题

全国计算机二级Python第18套-简单应用-45

2024-4-23 9:31:50

历年真题

全国计算机二级Python第18套-综合应用-46-问题2

2024-4-23 9:36:57

个人中心
购物车
优惠劵
今日签到
搜索