【每周一坑】单词本 +【解答】三国演义中谁的存在感最强

简介: 今天本系列打算做个小小的尝试,不再是一个单独的题目,而是一个连环坑!我希望通过之后的三四期,逐步引导大家做出一个功能较完整的小工具。不过我现在没有底,不知道到最后能有多少人把坑给填完。愿意接受挑战的,现在就开始了!

“每周一坑”这个系列在本教室的文章中,阅读量不算高。但我屡次在和读者沟通时听到说“我都有跟着每周一坑里的题在做”。这是个有意思的普遍现象:内容的价值和传播度并不成正比。


因此如果你每天的阅读主要依赖于别人的转发和“智能”的推送,或许该考虑是不是增加点更有价值的“主动阅读”了。


PS:上周的送书活动的中奖名单:捷、七步、司夜、教我点英语吧、HalShaw、剃刀奥卡姆、兜里有糖、李明毅、贝玉尚、A暴躁的眼镜吴。奖品书籍将在下周一寄出。类似活动我们经常会有,大家别客气啊(比如这次只要你留言的项目或文章超过3个赞就能拿到书的


今天本系列打算做个小小的尝试,不再是一个单独的题目,而是一个连环坑!我希望通过之后的三四期,逐步引导大家做出一个功能较完整的小工具。不过我现在没有底,不知道到最后能有多少人把坑给填完。愿意接受挑战的,现在就开始了!


我们的目标是:


单词本


这应该是一个很多人都可以用到的小工具。在平常学习或阅读的时候,遇到一些生词,随手加入生词本里,有空的时候可以拿出来复习。很多背单词工具都有这样的功能。不过你有没有想过自己实现一个这样工具呢?既是一个练手的好题材,也能定制化一些自己想要的功能。


初步的设想,这个单词本工具可以随时添加生词,自动配上释义,支持导入导出单词本,可以进行复习、测试,并记录每个词的熟悉度。(有其他功能建议,欢迎在文后留言)


这个程序可以写得很简单,帮你巩固 Python 的基础语法、数据结构使用、文件读写。而你也可以根据自己的能力更进一步,给它增加 GUI、网络、数据处理等功能。


作为第一期,我们的起步要求很简单:


  1. 可在命令行输入单词或词组
  2. 保存在文件中并记录添加的日期
  3. 提示保存成功或单词已存在
  4. 提示现有单词总数
  5. 程序可重复运行(保证读写功能正常)


效果演示:



详细解答和参考代码将在下次栏目中给出,也可以其他同学在留言中的代码。

期待各位同学提交解答,更期待你能完成整个系列。

提交代码可以使用 paste.ubuntu.com

codeshare.io 等代码分享网站,只需将代码复制上去保存,即可获得一个分享地址,非常方便。



【解答】三国演义中谁的存在感最强


上次的题目《三国演义中谁的存在感最强》,关键是用好两个库就可以了:


jiebacollections.Counter


这里给一份参考解答:


# 读取三国原文
with open('sanguo.txt', encoding='utf8', errors='ignore') as f:
    text = f.read()
# 分词
import jieba
words = jieba.lcut(text)
words_valid = []
# 排除词
excludes = ['将军', '却说', '二人', '不可', '荆州', '不能', '如此', '商议', '如何', '主公', '军士', '左右', '军马', '引兵', '次日', '大喜', '天下', '东吴', '于是', '今日', '不敢', '魏兵', '陛下', '人马', '都督', '一人', '不知', '汉中', '众将', '只见', '后主', '蜀兵']
for word in words:
    if len(word) < 2:
        continue
    if word in excludes:
        continue
    # 合并词
    if word.endswith('曰'):
        word = word[:-1]
    if "诸葛亮" in word or '孔明' in word:
        word = '孔明'
    elif "关公" in word or "云长" in word:
        word = "关羽"
    elif "玄德" in word or '皇叔' in word:
        word = "刘备"
    elif "孟德" in word or "曹丞相" in word :
        word = '曹操'
    words_valid.append(word)
# 统计高频词
from collections import Counter
ct = Counter(words_valid)
ct.most_common(10)


除了分词和统计的调用外,中间还做了两件事:


  1. 把一些高频但我们不关注的词去掉(这里其实是先运行过一次代码,找出的这些高频词)
  2. 把一些同目标的词合并,比如“诸葛亮”和“孔明”。另外这里用 in 而不是 ==,是因为可以把“孔明曰”、“孔明笑”之类的词也统计进来。


执行结果:



看来,刘皇叔还是当之无愧的C位,不过诸葛丞相的地位也不可小觑。


上次各位的回应让我有些尴尬,只有一位同学提交了答案。不过,这位同学的答案却是相当惊艳,以至于我决定原封不动地搬运过来,放在今天的下一条。强烈推荐大家去看一下 @王文亚 同学的解答,不仅统计了书中人名的出现频率,还进一步分析并绘制了不同人物在不同章回出现的分布、人物之间的关系等。尽管其中有些小细节值得商榷,但整体上已经相当不错。



除了这个题目,之前几次的题目王同学也有很不错的解答,值得各位借鉴学习。项目地址 https://github.com/Damon0626/Crossin-Programming-Room


其他同学也动起手来呀!

期待在下一期中看到你们的代码。


其他内容回复左侧关键词获取:

python :零基础入门课程目录

新手 :初学者指南及常见问题

资源 :超过500M学习资料网盘地址

项目 :十多个进阶项目代码实例

如需了解视频课程及答疑群等更多服务,请号内回复 码上行动

代码相关问题可以在论坛上发帖提问 bbs.crossincode.com

推荐阅读:

爬抖音 | AI名画 | 押韵工具 | 虎扑 | 如何debug | 查天气 | 我用Python | 知乎 | 排序 | 电影票 | 技术宅 | 单词表 | 新手建议 | 如何提问 | 中文编

相关文章
|
人工智能 算法 安全
AR眼镜在工业AI大模型识别的使用流程​
AR眼镜融合AI大模型,实现工业场景智能识别与预警,提升制造质量与安全。通过多模态模型适配、开源模型选型、端云协同部署及定向训练,打造高精度工业AI识别系统,助力制造业智能化升级。
|
人工智能 自然语言处理 数据挖掘
2025国内有哪些呼叫中心系统值得推荐?
在数字化浪潮推动下,呼叫中心系统已成为企业客户服务的核心枢纽。通过全面智能化、多渠道融合、大数据与AI驱动的决策支持及云化与安全性等技术优势,呼叫中心系统实现了降本增效和客户体验提升。2025年,随着人工智能和云计算的深度渗透,呼叫中心将迎来新一轮升级。推荐几款高效系统:合力亿捷、中国移动、华为云、阿里云和百度语音解决方案,涵盖电商、金融、政府等多个领域,助力企业优化服务流程,提升竞争力。
1022 13
|
人工智能 自然语言处理
AudioX:颠覆创作!多模态AI一键生成电影级音效+配乐,耳朵的终极盛宴
AudioX 是香港科技大学和月之暗面联合推出的扩散变换器模型,能够从文本、视频、图像等多种模态生成高质量音频和音乐,具备强大的跨模态学习能力和泛化能力。
1251 36
AudioX:颠覆创作!多模态AI一键生成电影级音效+配乐,耳朵的终极盛宴
|
SQL 缓存 Java
框架源码私享笔记(02)Mybatis核心框架原理 | 一条SQL透析核心组件功能特性
本文详细解构了MyBatis的工作机制,包括解析配置、创建连接、执行SQL、结果封装和关闭连接等步骤。文章还介绍了MyBatis的五大核心功能特性:支持动态SQL、缓存机制(一级和二级缓存)、插件扩展、延迟加载和SQL注解,帮助读者深入了解其高效灵活的设计理念。
|
人工智能 API 知识图谱
使用SiliconCloud尝试GraphRag——以《三国演义》为例(手把手教程,适合小白)
本文介绍了使用不同模型和平台体验GraphRAG的过程。首先通过OpenAI的GPT-4O Mini模型对沈从文的《边城》进行了分析,展示了如何安装GraphRAG并配置参数,最终实现了对文本的有效查询。随后,文章探讨了在国内环境下使用SiliconCloud作为替代方案的可能性,以《三国演义》为例,演示了使用SiliconCloud模型进行相同操作的步骤。此外,还讨论了使用本地模型如Ollama和LM Studio的可能性,尽管受限于硬件条件未能实际运行。最后,提出了混合使用在线对话模型API与本地或在线嵌入模型的方法,并列举了一些能够使GraphRAG流程跑通的大模型。
1011 10
使用SiliconCloud尝试GraphRag——以《三国演义》为例(手把手教程,适合小白)
|
运维 监控 Linux
提升系统稳定性:Linux内核参数调优实战
【5月更文挑战第1天】 在运维领域,保障服务器的高效稳定运行是核心任务之一。Linux操作系统因其开源、可靠和灵活的特点被广泛应用于服务器中。本文将深入探讨通过调整Linux内核参数来优化系统性能,提升服务器的稳定性和响应能力。文章首先介绍了内核参数调优的必要性和基本原则,然后详细阐述了调优过程中的关键步骤,包括如何监控当前系统状态,确定性能瓶颈,选择合适的参数进行调优,以及调优后的测试与验证。最后,文中提供了一些常见问题的解决策略和调优的最佳实践。
1079 5
|
移动开发 前端开发 JavaScript
HTML5 中 `id` 属性和 `class` 属性的区别
【8月更文挑战第24天】
865 0
|
设计模式 算法 编译器
【C++ 泛型编程 入门篇】C++ 元编程 :模板结构体的的使用教程
【C++ 泛型编程 入门篇】C++ 元编程 :模板结构体的的使用教程
1032 1
|
网络安全
socks5代理连接成功无法访问http协议的站点
无法通过SOCKS5代理访问HTTP网站可能由多个原因引起,如代理服务器不支持HTTP、配置错误、防火墙阻拦、连接问题、身份验证失败、浏览器设置不当或服务器被封锁。检查并解决这些因素,若问题持续,需深入排查或联系服务提供商。
|
Linux
Linux系统的网卡路由配置
Linux系统的网卡路由配置
617 1

热门文章

最新文章