首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
某班学生评选一等奖学金,学生的10门主干课成绩存在考生文件夹下文件score.txt中,每行为一个学生的信息,分别记录了学生学号、姓名以及10门课成绩,格式如下: 1820161043 郑珉镐 68 66 83 77 56 73 61 69 66
某班学生评选一等奖学金,学生的10门主干课成绩存在考生文件夹下文件score.txt中,每行为一个学生的信息,分别记录了学生学号、姓名以及10门课成绩,格式如下: 1820161043 郑珉镐 68 66 83 77 56 73 61 69 66
admin
2020-04-10
82
问题
某班学生评选一等奖学金,学生的10门主干课成绩存在考生文件夹下文件score.txt中,每行为一个学生的信息,分别记录了学生学号、姓名以及10门课成绩,格式如下:
1820161043 郑珉镐 68 66 83 77 56 73 61 69 66 78
1820161044 沈红伟 91 70 8l 91 96 80 78 9l 89 94
从这些学生中选出奖学金候选人,条件是:①总成绩排名在前10名;②全部课程及格(成绩大于等于60)。
问题1:给出按总成绩从高到低排序的前10名学生名单,并写入文件candidate0.txt,每行记录一个学生的信息,分别为学生学号、姓名以及10门课成绩。补充考生文件夹下文件PY301一1.py,完成这一功能。
试题程序:
#请在…处使用多行代码替换
#
#注意:其他已给出代码仅作为提示,可以修改
L=[] #L中的元素是学生原始成绩和总成绩
…#此处可多行
L.sort(key=lambda x:x[一1],reverse=True)拌按学生总成绩从大到小排序
…#此处可多行
问题2:读取文件candidate0.txt,从中选出候选人,并将学号和姓名写入文件candidate.txt,格式如下:
1010112161722 张三
1010112161728 李四
补充考生文件夹下文件PY301—2.py,完成这一功能。
试题程序:
’’’
输入文件:candidate0.txt
输出文件:candidate.txt
’’’
选项
答案
(1)L=[] fo=open("score.txt","r") fi=open("candidate0.txt","w") lines=fo.readlines() for line in lines: line=line.strip() student=line.split(’’) sum=0 for i in range(1,11): sum+=int(student[-i]) studene.append(str(sum)) L.append(student): L.sort(key=lambda.x:x[一1],reverse=True) for i in range(10): fi.write(’’,join(L[i][:-1])+’\n’) fo.close() fi.close() (2)’’’ 输入文件:candidate0.txt 输出文件:candidate.txt ’’’ fo=open("candidate0.txt","r") fi=open("candlidate.txt","w") L=[]#存储候选人 lines=fo.readlines() for line in lines: line=line.strip() student=line.split(’’) for i in student[-10:]: if int(i)<60: break else: I..append(student[:2]) for i in L: fi.write(’’.join(i)+’\n’) fo.close() fi.close()
解析
(1)本题涉及”score.txt”和”candidate0.txt”两个文件。首先要读取”score.txt”文件中的信息,通过程序求出每个学生的总成绩,然后按总成绩从大到小排序,将总成绩排名前10的学生的学号、姓名以及10门课成绩写入到”candidate0.txt”文件中。打开文件用open()函数,用”r”只读模式打开文件”score.txt”,用”w”模式创建文件”cand:idate0.txt”。
”score.txt”文件中每行为一个学生的信息,需要用readlines()函数读入所有行,以每行为元素形成列表lines,然后用for循环遍历该列表中的每个元素。在遍历每个元素时,用strip()方法删除元素首尾出现的空格,用split()方法以空格分隔学生的学号、姓名以及10门课成绩得到列表student。由于要求出总成绩,因此要使用for遍历每个学生的10门课成绩,将其累加赋值给sum,并将sum追加到student中。最后将student中所有元素追加到列表L中。
随后,对列表L中的元素进行排序,用到sort()方法,参数”key=lambda x:x[一1]”中lambda是一个隐函数,是固定写法,不能写成别的单词;x表示列表中的一个元素,在这里表示一个列表(即一个学生的信息),x只是临时起的一个名字,也可以使用任意的名字;x[一1]表示以列表中的最后一个元素(即总成绩)排序。参数”reverse=True”表示按降序排序;若该参数缺省或”reverse=False”,表示按升序排序。
最后,通过for循环在列表L中提取出前10个元素(即前10名的学生信息,但不包含总成绩),用空格分隔每个元素,并添加换行符,写入到文件”candidate0.txt”中,再关闭所有文件。
(2)本题涉及”candidate0.txt”和”candidate.txt”两个文件。首先要读取”candidate0.txt”文件中的信息,通过程序判断每个学生的所有课程成绩是否都大于等于60,满足条件的将该学生的学号和姓名写入到”candidate.txt”文件中。打开文件用open()函数,用”r”只读模式打开文件”candidate0.txt”,用”w”模式创建文件”candidate.txt”,并定义一个列表L来存储学号和姓名(做中转)。
”candidate0.txt”文件中有10行数据,需要用readlines()函数读入所有行,以每行为元素形成列表lines,然后用for循环遍历该列表中的每个元素。在遍历每个元素时,用strip()方法删除元素首尾的空格,用split()方法以空格分隔学生的学号、姓名以及10门课成绩得到列表student。然后对列表student使用for循环遍历,用来判断10门课程的成绩是否都大于等于60,满足条件就将列表student中的前两个元素(即学号和姓名)追加到列表L中。
最后,通过for循环提取列表L中的所有元素,用空格分隔每个元素,并添加换行符,写入到文件”candidate.txt”中,再关闭所有文件。
转载请注明原文地址:https://kaotiyun.com/show/1f6p777K
本试题收录于:
二级Python题库NCRE全国计算机二级分类
0
二级Python
NCRE全国计算机二级
相关试题推荐
有如下职员表和订单表:职员(职员号(C.3),姓名(C,6),性别(C,2),职务(C,10))订单(订单号(C,4),客户号(C,4),职员号(C,3),签订日期(D),金额(N,6,2))查询职工”李丽”签订的订单信息,正确的SQL语句是()。
(1)在考生文件夹下新建一个名为“图书管理”的项目文件。(2)在项目中新建一个名为“图书”的数据库。(3)将考生文件夹下的所有自由表添加到“图书”数据库中。(4)在项目中建立查询book_qu,其功能是查询价格大于等于10的图
数据库系统的三级模式不包括()。
在考生文件夹下完成下列操作:在考生文件夹下有一表单文件formone.sex和一个自定义类库文件classlibone.VEX。打开表单文件formone.scx,然后在表单设计器环境下完成如下操作。1.将表单的标题设置为“简单操作”,
在VisualFoxPro中,有如下程序,函数HF()返回值是()。*程序PRIVATEX,YSTORE"男"TOXY=LEN(X)+27IIF(Y
函数ROUND(208.67,一1)的返回值为()。
下列关于VisualFoxPro的数组描述,错误的是()。
假设客户表中有客户号(关键字)C1一C10共10条客户记录,订购单表有订单号(关键字)OR1^OR8共8条订购单记录,并且订购单表参照客户表。如下命令可以正确执行的是()。
在考生目录下完成下列操作:(1)从数据库stock中移去表stock_fk(不是删除)。(2)将自由表stock_name添加到数据库中。(3)为表stock_s1建立一个主索引,索引名和索引表达式均为“股票代码”。(4)为stock_name表的
随机试题
在球类比赛中,利用回放决定判罚是错误的。因为无论有多少台摄像机跟踪拍摄场上比赛,都难免会漏掉一些犯规动作。要对所发生的一切明察秋毫是不可能的。以下哪一项论证的缺陷与上述论证的最相似?
图3-1所示的电路中UAB等于【】
从治疗效果和保留器官功能来考虑,早期头颈部肿瘤首选的治疗手段是
根据项目的特点和项目内外环境因素,选择一种适合项目工作开展的管理组织结构形式,并完成组织结构的设计。具体工作包括()
实施劳动保障监察具有重要意义()。
关于领导一成员交换理论的说法,正确的是()。
2012年6月30日,甲公司与乙公司签订租赁合同,合同规定甲公司将一栋自用办公楼出租给乙公司,租赁期为1年,年租金为200万元。当日,出租办公楼的公允价值为8000万元,大于其账面价值5500万元。2012年12月31日,该办公楼的公允价值为9000
在假设检验中,H0为原假设,H1为对立假设,则第一类错误指的是()。
知识产权广义上是关于无形智力成果的专有权利,是通过排除他人的主张和干预而独占智力成果的开发和使用,进而获得独占权益的制度。基于知识产权的____________属性,财产理论成为知识产权制度的核心理论。具体到知识产权与公共领域的二元关系中,则是一方面强调权
A、Ipaid4dollarsfortheshrimp.B、Ipaid6dollarsfortheshrimp.C、Ipaid8dollarsfortheshrimp.D、Ipaid12dollarsfor
最新回复
(
0
)