计算机二级python真题
文章目录
- 计算机二级python真题
- 一、八十天环游世界
- 二、八十天环游世界 问题一
- 二、八十天环游世界 问题二
一、八十天环游世界
附件中保存1个文本文件,分别对应2个问题
其中,文本文件“八十天环游地球.txt”是法国作家儒勒. 凡尔纳《八十天环游地球》长篇小说的网络版本,请修改源文件实现以下功能。
二、八十天环游世界 问题一
问题1:提取章节题目并输出到文件。
要求:在模板中补充代码, 提取“八十天环游地球. txt” 中所有章节的题目,并且将提取后的题目输出到“八十天环游地球-章节. txt"文件中,每行一一个标题,示例如下:
第一章 斐利亚·福克和路路通建立主仆关系
第二章 路路通认为他总算找到了理想的工作
第三章 一场可能使福克先生破财的争论
第四章 斐利亚·福克把路路通吓得目瞪口呆
第五章 伦敦市场上出现了一种新的股票
f = open("八十天环游地球.txt", encoding="utf-8") # 读取源文件
fi = open("八十天环游地球-章节.txt", "w", encoding="utf-8") # 打开新文件
for i in f: # 遍历文本
text = i.split(" ")[0] # 章节中有空格进行分割 例如:第二章 路路通认为他总算找到了理想的工作 ,重要提示: 双引号中间的是一个空格, 如果你的浏览器显示出来一个原点,是浏览器的显示问题, 建议更换谷歌浏览器
if text[0] == "第" and text[-1] == "章": # 取出第一段文本,如果首字符是第尾字符是章,代表是章节
fi.write("{}\n".format(i.replace("\n", ""))) # 格式化保存
fi.close()
f.close()
二、八十天环游世界 问题二
问题2:统计每章节的高频词并打印输出。
要求:在模板补充代码,统计“八十天环游地球. txt”中每一章的标题和内容中,出现次数最多的词语(词语长度不少于2个字符)及其次数,输出格式为章节名、 词语及其出现的次数,以空格分隔,示例如下:
第一章 福克 25
第二章 路路通 17
第三章 福克 26
第四章 福克 27
第五章 福克 31
import jieba
import re
strf = '八十天环游地球.txt'
with open(strf, encoding='utf-8') as f:
lines = f.read()
t = re.findall('(第.{1,3}章.*)', lines)
with open(strf, encoding='utf-8') as f:
lines = f.read()
s = re.sub('(第.{1,3}章.*)', '$', lines)
x = s.split('$')
x = x[1:]
# 计算词频并输出结果。
for i, j in zip(t, x):
counts = {}
txt = jieba.lcut(i+j)
for word in txt:
if len(word) >= 2:
counts[word] = counts.get(word, 0) + 1
li = list(counts.items())
li.sort(key=lambda x: x[1], reverse=True)
word_max, count_max = li[0]
chapter = re.findall('(第.*章)', i)[0]
print(chapter + ' ' + word_max + ' ' + str(count_max))
Python re模块:https://www.cnblogs.com/shenjianping/p/11647473.html
Python zip()函数:https://www.runoob.com/python/python-func-zip.html