python二级第七套答案
【摘要】 python二级第七套答案 46、某班学生评选一等奖学金,学生的10门主干课成绩存在考生文件夹下文件score.txt中,每行为一个学生的信息,分别记录了学生学号、姓名以及10门课成绩,格式如下:
1820161043 郑珉镐 68 66 83 77 56 73 61 69 66 78
1820161044 沈红伟 91 70 81 91 96 80 78 91 8...
python二级第七套答案
46、某班学生评选一等奖学金,学生的10门主干课成绩存在考生文件夹下文件score.txt中,每行为一个学生的信息,分别记录了学生学号、姓名以及10门课成绩,格式如下:
1820161043 郑珉镐 68 66 83 77 56 73 61 69 66 78
1820161044 沈红伟 91 70 81 91 96 80 78 91 89 94
……
从这些学生中选出奖学金候选人,条件是:1)总成绩排名在前10名;2)全部课程及格(成绩大于等于60)。
问题1:给出按总成绩从高到低排序的前10名学生名单,并写入文件candidate0.txt,每行记录一个学生的信息,分别为学生学号、姓名以及10门课成绩。补充考生文件夹下文件PY301-1.py,完成这一功能。
问题2:读取文件candidate0.txt,从中选出候选人,并将学号和姓名写入文件candidate.txt格式如下:
1010112161722 张三
1010112161728 李四
……
补充考生文件夹下文件PY301-2.py.完成这一功能。
# 请在...处使用多行代码替换
#
# 注意:其他已给出代码仅作为提示,可以修改
f=open("score.txt","r")
lines=f.readlines()
f.close()
D=[] #单个学生的数据
L=[] #L中的元素是学生原始成绩和总成绩
for line in lines: D=line.split() s=0 #每个学生的总成绩初始值 for i in range(10): s+=int(D[i+2]) #各科成绩累加求和,+2是因为前两个元素是学号和姓名 D.append(s) L.append(D)
L.sort(key=lambda x:x[-1],reverse=True) #按学生总成绩从大到小排序
f=open('candidate0.txt','w')
for i in range(10): #取前十个学生数据 for j in range(len(L[i])): #一个学生的各项数据 f.write('{} '.format(L[i][j])) #写各项数据,用空格隔开 f.write('\n') #换行
f.close()
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
'''
输入文件 : candidate0.txt
输出文件 : candidate.txt
'''
f=open("candidate0.txt",'r')
lines=f.readlines()
f.close()
D=[]
f=open('candidate.txt','w')
for line in lines: D=line.split() for i in range(10): if int (D[i+2])<0: break else: f.write('{}{}\n'.format(D[0],D[1]))
f.close()
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
文章来源: blog.csdn.net,作者:yk 坤帝,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/qq_45803923/article/details/115324790
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)