首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
考生文件夹下存在3个Python源文件,分别对应3个问题;1个文本文件,作为本题目的输入数据,请按照源文件内部说明修改代码,实现以下功能。 《卖火柴的小女孩》是丹麦童话故事作家安徒生写的一篇童话故事,发表于1846年。主要讲了一个卖火柴的小女孩在富
考生文件夹下存在3个Python源文件,分别对应3个问题;1个文本文件,作为本题目的输入数据,请按照源文件内部说明修改代码,实现以下功能。 《卖火柴的小女孩》是丹麦童话故事作家安徒生写的一篇童话故事,发表于1846年。主要讲了一个卖火柴的小女孩在富
admin
2021-03-16
33
问题
考生文件夹下存在3个Python源文件,分别对应3个问题;1个文本文件,作为本题目的输入数据,请按照源文件内部说明修改代码,实现以下功能。
《卖火柴的小女孩》是丹麦童话故事作家安徒生写的一篇童话故事,发表于1846年。主要讲了一个卖火柴的小女孩在富人阖家欢乐、举杯共庆的大年夜冻死在街头的故事。这里给出《卖火柴的小女孩》的一个网络版本文件,文件名为“小女孩.txt”。
问题1:在“PY301-1.py”文件中修改代码,对“小女孩.txt”文件进行字符频次统计,输出频次最高的中文字符(不包含标点符号)及其频次,字符与频次之间采用英文冒号(:)分隔,将输出结果保存在考生文件夹下,命名为“PY301-1.txt”。示例格式如下。
的:83
试题程序:
#以下代码为提示框架
#请在…处使用一行或多行代码替换
#请在________处使用一行代码替换
#注意:提示框架的代码可以任意修改,以完成程序功能为准
…
fo=open("PY301-1.txt","w")
d={}
…
fo.write("{}:{}".format(________))
fo.close()
问题2:在“PY301-2.py”文件中修改代码,对“小女孩.txt”文件进行字符频次统计,按照频次由高到低,输出前10个频次最高的字符,不包含回车符,字符之间无间隔,连续输出,将输出结果保存在考生文件夹下,命名为“PY301-2.txt”。示例格式如下。
,的一…(共10个字符)
试题程序:
#以下代码为提示框架
#请在…处使用一行或多行代码替换
#注意:提示框架的代码可以任意修改,以完成程序功能为准
…
fo=open("PY301-2.txt","w")
…
d={}
…
ls=list(d.items())
ls.sort(key=lambda x:x[1],reverse=True)#此行可以按照字符频次由高到低排序
…
问题3:在PY301-3.PY文件中修改代码,对“小女孩.txt”文件进行字符频次统计,将所有字符按照频次从高到低排序,字符包括中文、标点、英文等,但不包含空格符和回车符。将排序后的字符及频次输出到考生文件夹下,文件名为“小女孩-频次排序.txt”。字符与频次之间采用英文冒号(:)分隔,各字符之间采用英文逗号(,)分隔,参考CSV格式,最后无逗号,文件内部示例格式如下。
着:30,那:29,火:29
试题程序:
#以下代码为提示框架
#请在…处使用一行或多行代码替换
#注意:提示框架的代码可以任意修改,以完成程序功能为准
…
d={}
…
ls=1ist(d.items())
ls.sort(key=lambda x:x[1],reverse=True)
#此行可以按照字符频次由高到低排序
…
选项
答案
(1)fi=open("小女孩.txt","r") fo=open("PY301-1.txt","w") txt=fi.read() d={} exclude=",。!?、【】<>《》=:+-*—“”…" for word in txt: if word in exclude: continue else: d[word]=d.get(word,0)+1 ls=list(d.items()) ls.sort(key=lambda x:x[1],reverse=True) fo.write("{}:{}".format(ls[0][0],ls[0][1])) fo.close() (2)f=open("小女孩.txt","r") fo=open("PY301-2.txt","w") txt=fi.read() d={} for word in txt: d[word]=d.get(word,0)+1 del d["\n"] ls=list(d.items()) ls.sort(key=lambda x:x[1],reverse=True) #此行可以按照字符频次由大到小排序 for i in range(10): fo.write(ls[i][0]) fi.close() fo.close() (3)i=open("小女孩.txt","r") fo=open("小女孩-频次排序.txt","w") txt=f.read() d={} for word in txt: d[word]=d.get(word,0)+1 del d[""] del d["\n"] ls=list(d.items()) ls.sort(key=lambda x:x[1],reverse=True) #此行可以按照字符频次由大到小排序 for i in range(len(1s)): ls[i]="{} :{}".format(ls[i][0],ls[i][1]) fo.write(",".join(ls)) fi.close() fo.close()
解析
(1)首先使用open()函数打开文件“小女孩.txt”,把文件的内容通过read()方法保存到变量txt中;定义一个字符串变量exclude用来存放标点符号。然后用for循环遍历txt中的每个字符(word),并使用if条件进行判断,若该字符在变量exclude中,说明该字符为标点符号,跳出该循环;否则将该字符作为字典d中的一个键,该键所对应的值初始化为l,在后面循环中只要遍历的字符与该键相同,就将该键对应的值加1。
ls=list(d.items())表示将字典类型变成列表类型,字典中的每个键值对对应列表中的一个元组。随后,对列表ls进行排序,用到sort()方法,参数key=lambda x:x[1]中lambda是匿名函数,是固定写法,不能写成别的单词;x表示列表中的一个元素,在这里表示一个元组,x只是临时起的名字,也可以使用任意的名字;x[1]表示以元组中第二个元素排序。sort()方法的第二个参数表示是按哪种方式排序,若为reverse=True表示按降序排序;若该参数缺省或reverse=False,表示按升序排序。排序后,列表ls中第一个元组即为频次最大的中文字符和频次,ls[0][0]表示该字符,ls[0][1]表示其频次,将这两个元素通过冒号连接写入文件“PY301-1.txt”中。
(2)问题2和问题1的区别在于统计的字符包含标点符号,因此不需要设置字符串变量exclude和使用if条件语句进行判断;题目要求不包含回车符,因此需要使用del删除字典d中键为\n的元素。最后要无间隔输出前10个频次最大的字符,需要对排序好的列表ls进行for循环遍历,找到前10个元组的第一个元素,并将其直接写入文件“PY301-2.txt”中。
(3)问题3和问题2的区别在于统计的字符中不能包含空格符,因此需要使用del删除字典d中键为空格符的元素。最后要将所有字符和其频次输出,需要对排序好的列表ls进行for循环遍历,遍历列表中的每个元组,并将元组中的两个元素通过冒号连接,再用逗号分隔每个字符写入文件“小女孩-频次排序.txt”中。
转载请注明原文地址:https://jikaoti.com/ti/x450FFFM
本试题收录于:
二级Python题库NCRE全国计算机二级分类
0
二级Python
NCRE全国计算机二级
相关试题推荐
数据库系统的三级模式不包括()。
下列关于数据库设计的叙述中,正确的是()。
下列程序段的循环结构执行后,x的值为FORx=1TO8STEP2y=y+xENDFOR?x
有读者表(读者.DBF),其结构和内容如下:借书证号C(5),姓名C(6),单位C(16),性别L,职称C(6),联系电话C(11)100010李晓军统计系.T.副教授65976100200011刘毅统计系.T.讲师665045603
假设SETEXACT设置为OFF,则下面命令中输出结果为.T.的是()。
在考生文件夹下完成如下简单应用:1.建立一个满足下列要求的表单文件tab。(1)表单中包含一个页框控件Pageframe1,该页框含有3个页面:Page1、Page2、Page3,三个页面的标题依次为“学生”、“课程”和“成绩”。(2)将studen
下列有关过程调用的叙述中,正确的是()。
以下小题使用如下关系:客户(客户号,名称,联系人,邮政编码,电话号码)产品(产品号,名称,规格说明,单价)订购单(订单号,客户号,订购日期)订购单名细(订单号,序号,产品号,数量)查询客户名称中有“网络”二字的客户信息的正确命令是()。
下列模式中,能够给出数据库物理存储结构与物理存取方法的是()。
关于Python循环结构,以下选项中描述错误的是
随机试题
Jessicaoughttostopstudying:shehasaheadachebecauseshe______toolong.
营养性缺铁性贫血选用下列哪项治疗最恰当
A.一级召回B.二级召回C.三级召回D.四级召回使用该医疗器械引起危害的可能性较小但仍需要召回的,为
一般纳税人企业通过“营业税金及附加”科目的内容有()。
2014年11月6日,甲公司与乙公司签订一份买卖合同。该合同约定:乙公司应于2014年12月20日前向甲公司交付货物。为支付货款,甲公司于11月8日向乙公司签发了一张见票后定期付款的银行承兑汇票。乙公司收到该汇票后于11月12日向丙银行提示承兑,丙银行对该
《健康心理学》杂志最新发表文章说,坐姿可以影响情绪。新西兰奥克兰大学科学家研究结果显示,坐得直的人显得更有自信和活力,更多使用积极词语;坐姿______的实验对象则表现得害怕、紧张、消极和有戒备心。研究人员认为,个中原因是肌肉状态会影响人体激素和神经系统,
2011年,我国能源生产总量达到31.8亿吨标准煤,是世界第一大能源生产国。其中,原煤产量35.2亿吨,原油产量稳定在2亿吨,成品油产量2.7亿吨。天然气产量快速增长,达到1031亿立方米。电力装机容量10.6亿千瓦,年发电量4.7万亿千瓦时。2011年
根据布卢姆的分类,下面属于“普遍原理知识”的是()
设f(x)在[a,+∞)上可导,且当x>a时,f’(x)<k<0(k为常数)。证明:如果f(a)>0,则方程f(x)=0在区间上有且仅有一个实根。
主机要以广播方式发送一个分组给网络地址为201.227.20.0上的所有主机,那么需要使用的直接广播地址为()。
最新回复
(
0
)