【python二级】八十天环游世界

题目描述

附件中保存1个文本文件,分别对应2个问题‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

其中,文本文件“八十天环游地球txt”是法国作家儒勒. 凡尔纳《八十天环游地球》长篇小说的网络版本,请修改源文件实现以下功能。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

问题2:统计每章节的高频词并打印输出。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

要求:在模板补充代码,统计“八十天环游地球. txt”中每一章的标题和内容中,出现次数最多的词语(词语长度不少于2个字符)及其次数,输出格式为章节名、 词语及其出现的次数,以空格分隔,示例如下:‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

示例‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

第一章 福克 25
第二章 路路通 17
第三章 福克 26
第四章 福克 27
第五章 福克 31

代码
import jieba
import re
strf='八十天环游地球.txt'
with open(strf,'r',encoding='utf-8') as f:
    lines=f.read()
    t=re.findall('(第.{1,3}章.*)',lines)
with open(strf,'r',encoding='utf-8')as f:
    lines=f.read()
    s=re.sub('(第.{1,3}章.*)','$',lines)
    x=s.split('$')[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
    lsts=list(counts.items())
    lsts.sort(key=lambda x:x[1],reverse=True)
    word_max,count_max=lsts[0]
    chapter=re.findall('(第.{1,3}章)',i)[0]
    print(chapter+' '+word_max+' '+str(count_max))
简要说明:

这道题主要做两件事:1、把每一章相关的内容摘出来 2、分词

首先第一件事,我们要摘出每一章内容,就必须以标题为分割进行摘出,同时要注意,标题的字符也要加入这一章内容进行分词。
这里可以用re.findall(‘()’,lines),把每一章标题摘到一个叫t的列表里。
然后用re.sub(‘()’,‘$’,lines)的方式,把冗长且无法统一的标题名替换成美元符号,然后用字符串split()方式去以美元为分割切成列表,然后去掉第一个元素,也就是标题,就剩下的是每一章的正文内容。

然后用zip()去把每一章对应的标题和正文内容赋值给i和j,再把它们拼起来分词、遍历、用字典记录词频、用列表倒序排序。最后把列表第一个元素拿出来,赋值给word_max和count_max,因为第一个元素是词频最大的。然后是输出,由于’第x章‘相关内容不好输出,再用正则表达式re.findall()去取出来,由于返回的是列表且只有一个元素,因此取[0]即为把这个’第x章’取出来了。

然后用字符串的方式输出来。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Python八十天环游世界》是一本以Python编程语言为主题的书籍,它通过一系列有趣的项目和挑战,帮助读者掌握Python的各种应用和技巧。这本书的目标是帮助读者在八十天内通过实践来提高他们的Python编程能力,并且了解Python在不同领域的应用。 这本书通常会涵盖以下内容: 1. Python基础知识:包括变量、数据类型、条件语句、循环语句等基本概念和语法。 2. 函数和模块:介绍如何定义和使用函数,以及如何使用Python的模块来组织代码。 3. 文件操作:学习如何读写文件,以及如何处理CSV、JSON等常见文件格式。 4. 网络编程:了解如何使用Python进行网络通信,包括HTTP请求、Socket编程等。 5. 数据库操作:介绍如何使用Python连接和操作数据库,如MySQL、SQLite等。 6. Web开发:学习使用Python的Web框架(如Django、Flask)来构建网站和Web应用程序。 7. 数据分析和可视化:了解如何使用Python进行数据分析和可视化,如Pandas、Matplotlib等库的使用。 8. 机器学习和人工智能:介绍如何使用Python进行机器学习和人工智能的开发,如Scikit-learn、TensorFlow等。 通过完成这本书中的项目和挑战,读者可以逐步提高他们的Python编程能力,并且了解Python在不同领域的应用。这本书适合已经具备一定Python基础的读者,希望通过实践来进一步提升自己的编程技能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值