python-27-零基础自学python

学习内容:《python编程:从入门到实践》第二版

知识点:

统计文本单词数、

解决问题: 'gbk' codec can't decode byte 0x9d in position 995: illegal multibyte sequence"

练习内容:

练习10-10:常见单词 访问古登堡计划,找一些你想分析的图书。下载这些作品的文本文件或将浏览器中的原始文本复制到文本文件中。可以使用方法count()来确定特定的单词或短语在字符串中出现了多少次。

可以使用方法count()来确定特定的单词或短语在字符串中出现了多少次。例如,下面的代码计算'row'在一个字符串中出现了多少次:[插图]

请注意,通过使用lower()将字符串转换为小写,可捕捉要查找单词的所有格式,而不管其大小写如何。

编写一个程序,它读取你在古登堡计划中获取的文件,并计算单词'the'在每个文件中分别出现了多少次。这里计算得到的结果并不准确,因为将诸如'then'和'there'等单词也计算在内了。请尝试计算'the '(包含空格)出现的次数,看看结果相差多少。

我的代码&运行结果:

python 复制代码
def count_words(filename):
    try:
        with open(filename,encoding='utf-8') as file_object:
            contents = file_object.read()
    except:
        print(f"{filename}文件不存在")
    else:
        count1 = contents.lower().count('the')
        print(f"[the]出现{count1}次")
        count2 = contents.lower().count('the ')
        print(f"[the ]出现{count2}次")
        count3 = contents.lower().count(' the ')
        print(f"[ the ]出现{count2}次")

filenames = ["A Little Princess.txt","Alice's Adventures in Wonderland.txt"]
for filename in filenames:
    count_words(filename)

练习

注意点:

1.最后写count_words()的时候,忘记写了这个filename

2.我遇到第二个问题是文件不存在,但是文件是存在的,不知道什么原因。

处理方式:

1.删除try-except-else,让程序运营,发现问题

2.书中,也用了这部分代码encoding ='utf-8',果然没有一个字符是乱敲的。

3.try-except-else处理异常要慎用,感觉用了之后完全找不出真正的问题在哪,会导致处理文件的时候出现bug,此外,自己以后写程序,在测试和一开始的阶段,尽量不要用

4.解决方法参考以下几个大佬,感谢,另外发现了博客园也是个不错的论坛,见下文里面的引用,另外是第一个链接写得特别详细,把一些我以为是乱码的符号解释得很清楚:

Python中读取txt文本出现" 'gbk' codec can't decode byte 0xbf in position 2: illegal multibyte sequence"的解决办法-CSDN博客
https://blog.csdn.net/lqzdreamer/article/details/76549256

UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 205: illegal multibyte sequence-CSDN博客
https://blog.csdn.net/Young__Fan/article/details/89179393

相关推荐
你怎么知道我是队长3 小时前
C语言---枚举变量
c语言·开发语言
李慕婉学姐3 小时前
【开题答辩过程】以《基于JAVA的校园即时配送系统的设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
java·开发语言·数据库
吃茄子的猫3 小时前
quecpython中&的具体含义和使用场景
开发语言·python
じ☆冷颜〃3 小时前
黎曼几何驱动的算法与系统设计:理论、实践与跨领域应用
笔记·python·深度学习·网络协议·算法·机器学习
云栖梦泽3 小时前
易语言中小微企业Windows桌面端IoT监控与控制
开发语言
数据大魔方4 小时前
【期货量化实战】日内动量策略:顺势而为的短线交易法(Python源码)
开发语言·数据库·python·mysql·算法·github·程序员创富
APIshop4 小时前
Python 爬虫获取 item_get_web —— 淘宝商品 SKU、详情图、券后价全流程解析
前端·爬虫·python
风送雨4 小时前
FastMCP 2.0 服务端开发教学文档(下)
服务器·前端·网络·人工智能·python·ai
效率客栈老秦4 小时前
Python Trae提示词开发实战(8):数据采集与清洗一体化方案让效率提升10倍
人工智能·python·ai·提示词·trae
哈里谢顿4 小时前
一条 Python 语句在 C 扩展里到底怎么跑
python