首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
《天龙八部》是著名作家金庸的代表作之一,历时4年创作完成。该作品气势磅礴,人物众多。这里给出一个《天龙八部》的网络版本,文件名为“天龙八部一网络版.txt”。 问题1:请编写程序,对这个《天龙八部》文本中出现的汉字和标点符号进行统计,字符与出现次数之间用冒
《天龙八部》是著名作家金庸的代表作之一,历时4年创作完成。该作品气势磅礴,人物众多。这里给出一个《天龙八部》的网络版本,文件名为“天龙八部一网络版.txt”。 问题1:请编写程序,对这个《天龙八部》文本中出现的汉字和标点符号进行统计,字符与出现次数之间用冒
admin
2019-08-30
129
问题
《天龙八部》是著名作家金庸的代表作之一,历时4年创作完成。该作品气势磅礴,人物众多。这里给出一个《天龙八部》的网络版本,文件名为“天龙八部一网络版.txt”。
问题1:请编写程序,对这个《天龙八部》文本中出现的汉字和标点符号进行统计,字符与出现次数之间用冒号:分隔,输出保存到“天龙八部一汉字统计.txt”文件中,该文件要求采用CSV格式存储,参考格式如下(注意,不统计空格和回车字符);
天:100,龙:110,八:109,部:10
(略)
问题2:请编写程序,对《天龙八部》文本中出现的中文词语进行统计,采用jieba库分词,词语与出现次数之间用冒号:分隔,输出保存到“天龙八部一词语统计.txt”文件中。参考格式如下(注意,不统计任何标点符号):
天龙:100,八部:10
(略)
选项
答案
问题1答案如下: fi=open(’’天龙八部一网络版.txt’’,’’r’’,encoding=’uff-8’) fo=open(’’天龙八部一汉字统计.txt’’,’’w’’,encoding=’uff-8’) txt=fi.read() d={} for c in txt: d[c]=d.get(c,0)+1 del d[’’] del d[’\n’] ls=[] for key in d: ls.append(’’{}:{}’’.format(key,d[key])) fo.write(’’,’’.join(ls)) fi.close() fo close() 问题2答案如下: import jieba fi=open(’’天龙八部一网络版.txt’’,’’r’’,encoding=’uff-8’) fo=open(’’天龙八部一词语统计.txt’’,’’w’’,encoding=’utf-8’) txt=fi.read() words=jieba.lcut(txt) d={} for w in words: d[w]=d.get(w,0)+1 del d[’’] del d[’\n’] ls=[] for key in d: ls.append(’’{}:{}}’’.format(key,d[key])) fo.write(’’,’’.join(ls)) fi.close() fo.close()
解析
这是一个综合应用题,考核对文本文件中字符和单词的统计能力。
问题1:统计网络下载的“天龙八部一网络版.txt”中各字符出现次数,采用“字符:次数”方式表示,以CSV方式存储至“天龙八部一汉字统计.txt”。读写文件分别采用open()函数的’’r’’和’’w’’模式。
在读入文件时,可以增加参数encoding=’’uff-8’’,指定程序采用utf-8编码打开文件。文件编码过于复杂,在等级考试中并未涉及,这里,建议对编码的理解使用如下两条规则:第一,如果一个文本文件从网络获得,增加encoding参数,指定编码方式打开;第二,如果Python程序生成了一个文件,并再次打开,则不需要指定encoding参数。
打开文件后,可以一次性读人文件内容至变量txt中,采用遍历循环逐一遍历txt中每个字符,并利用字典将每个字符的出现次数计入“字符:次数”键值对表示中,采用代码如下:
d={}
for c in txt:
d[c]=d.get(c,0)+1
所有字符统计后,去掉空格(’’)和回车(’\n’)对应统计次数,采用del删除字典d中对应项。再遍历字典d,将其写入列表ls,列表每项为“字符:次数”样式字符串。最后,使用字符串.join()方法,将列表ls中所有项以逗号分隔形式整合并写入输出文件。
综上,问题1的全部代码含注释如下:
fi=open(’’天龙八部一网络版.txt’’,’’r’’,encoding=’utf一8’)
fo=open(’’天龙八部一汉字统计.txt’’,’’w’’,encoding=’uff一8’)
txt=fi.read()
d={}
for c in txt: #遍历循环,统计各出现字符及次数
d[c]=d.get(c,0)+1
del d[’’] #删除空格字符对应的出现次数
del d[’\n’] #删除回车字符对应的出现次数
ls=[]
for key in d: #遍历字典,将字典各项组织后变成列表的元素
Is.append(’’{}:{}’’.format(key,d[key]))
fo.write(’’,’’.join(ls))
fi.close()
fo.close()
问题2与问题1类似,只不过统计单元由字符变为中文词语,这需要采用jieba库进行分词。整体代码与问题1类似,仅在获取文本txt后进行一次jieba.lcut()分词操作即可。
综上,问题2的全部代码含注释如下:
import jieba
fi=open(’’天龙八部一网络版.txt’’,’’r’’,encoding=’utf-8’)
fo=open(”天龙八部-词语统计.txt’’,’’w’’,encoding=’utf-8’)
txt=fi.read()
words=jieba.lcut(txt) #中文分词,words是一个列表变量
d={}
for w in words: #遍历列表各元素,即遍历中文词语
d[w]=d.get(w,0)+1
del d[’’]
del d[’\n’]
ls=[]
for key in d:
ls.append(’’{}:{}’’.format(key,d[key]))
fo write(’’,’’.join(ls))
fi.close()
fo.close()
转载请注明原文地址:https://kaotiyun.com/show/5H6p777K
本试题收录于:
二级Python题库NCRE全国计算机二级分类
0
二级Python
NCRE全国计算机二级
相关试题推荐
VisualFoxPro支持的索引文件不包括
为保证数据的实体完整性,应该创建的索引是
下面表达式中,运算结果为12的是.
在下面的VisualFoxPro表达式中,运算结果为逻辑真的是
在VisualFoxPro中,有如下内存变量赋值语句:X={^2001-07-2810:15:20PM)Y=.F.M=$123.45N=123.45Z="123.24"执行上述赋值语
在设置日期格式时,不能使用的设置命令是
在VisualFoxPro中,程序中不需要用PUBLIC等命令明确声明和建立,可直接使用的内存变量是
在VisualFoxPro中,下面关于索引的描述错误的是()。
(1)在考生文件夹下有一个数据库“图书借阅”,使用报表向导制作一个名为tsrepo的报表,存放在考生文件夹下。要求:选择borrows表中所有的字段。报表样式为“经营式”,报表布局:列数“1”,字段布局“列”,方向“纵向”,按“借书证号”字段升序排序,报表
在考生文件夹下,完成如下操作:1.打开考生文件夹下的表单one,如下图所示。编写“显示”命令按钮的Click事件代码,使表单运行时单击该命令按钮则在Text1文本框中显示当前系统日期的年份(提示:通过设置文本框的Value属性实现,系统日期函数是da
随机试题
哺乳期妇女用药注意的是
甲因办厂无资金向乙借款10万元,借期两年,并且由丙担保在甲不还钱时代甲向乙还款。两年后,甲因经营不善无力偿还借款,乙向甲和丙索款未果,向法院提起诉讼。本案中关于甲、丙诉讼地位的判断哪些是正确的?
信托业务是指信托投资公司以资金融通为目的,以受托人身份承诺信托和处理信托事务的经营行为。()
甲公司生产A产品,生产过程分为两个步骤,分别在两个车间进行。一车间为二车间提供半成品。二车间将半成品加工成产成品。每件产成品消耗一件半成品。甲公司用平行结转分步法结转产品成本,月末对在产品和产成品进行盘点,用约当产量法在产成品和在产品之间分配成本。原材料在
根据行为主义的观点,学习的实质是()。
2004年我国东部农村约有绝对贫困人口()万人。根据图表,以下不正确的一项是()
《柳叶刀》是世界上最悠久及最受重视的同行评审性质的医学期刊,它属于()。
1895年,康有为率同梁启超等数干名举人联名上书光绪皇帝,反对清政府签订丧权辱国的《马关条约》。“公车上书”被认为是维新派登上历史舞台的标志。这一运动是
用于查看报表的页面数据输出形态是指()。
赤壁(Chibi)是中国著名的古战场,位于今天的湖北省境内。赤壁之战发生在三国时期(theThreeKing-domsPeriod)。刘备和孙权联合起来,巧用火攻,战胜了强大的曹操军队。因此,赤壁之战成了著名的以弱胜强的战例,许多军事文献都有提及。此
最新回复
(
0
)