概述
夜光序言:
倔强是最难改的脾气。
假如要改,也要倔强地去改。
不用改,只有倔强的人才温柔。
怎见得呢?
譬如说,穿着讲究,就是对自己的温柔。
正文:
1. 理解文本和二进制打开方式的区别
首先,用文本编辑器生成一个包含“中国是个伟大国家!”的 txt格式文本文件,命名为 test.txt。编写程序分别用文本文件方式和二进制文件方式读入,并打印输出效果。 观察输出结果并解释。
2. 文件处理
fo = open(fname, "r")
for line in fo:
# 处理一行数据
fo.close()
上述格式是打开文件并逐行处理的程序框架,请编写一个实例练习。
3. 哈姆雷特词频统计
Hamlet,《哈姆雷特》,是莎士比亚的一部经典悲剧作品,讲述了克劳狄斯叔叔谋害哈姆雷特父亲并篡取王位、哈姆雷特流浪在外并向叔叔复仇的故事。《哈姆雷特》也叫《王子复仇记》,代表着整个西方文艺复兴时期文学的最高成就,很多国内外电影都以这个故事为原型。 获取该故事的文本文件,保存为 hamlet.txt。全文可以从 MOOC 课程下载或从网络获得。 统计 Hamlet 英文词频的第一步是分解并提取英文文章的单词。同一个单词会存在大小写不同形式,但计数却不能区分大小写。假设Hamlet 文本由变量 txt 表示,可以通过 txt.lower()函数将字母变成小写,排除原文大小写差异对词频统计的干扰。英文单词的分割可以是空格、标点符号或者特殊符号。为统一分隔方式,可以将各种特殊字符和标点符号使用 txt.replace()方法替换成空格,再提取单词。 统计词频的第二步是对每个单词进行计数。假设将单词保存在变量word 中,使用一个字典类型 counts={},统计单词出现的次数采用如下代码:
counts[word] = counts[word] + 1
当遇到一个新词时,单词没有出现在字典结构中,则需要在字典中新建键值对:
counts[new_word] = 1
因此,无论词是否在字典中,加入字典 counts 中的处理逻辑可以统一表示为:
if word in counts:
counts[word] = counts[word] + 1
else:
counts[word] = 1
或者,这个处理逻辑可以更简洁的表示为如下代码:
counts[word] = counts.get(word,0) + 1
字典类型的 counts.get(word,0)方法表示:如果 word在 counts中,则返回 word 对应的值,如果 word 不在 counts 中,则返回 0。
该实例的第三步是对单词的统计值从高到低进行排序,输出前 10个高频词语,并格式化打印输出。由于字典类型没有顺序,需要将其转换为有顺序的列表类型,再使用 sort()方法和 lambda 函数配合实现根据单词次数对元素进行排序。最后输出排序结果前 10 位的单词。
items = list(counts.items()) #将字典转换为记录列表
items.sort(key=lambda x:x[1], reverse=True) #以第 2 列排序
采用函数对获取和整理文本进行封装
最后
以上就是俊逸大树为你收集整理的夜光带你走进python开发 (三十九)传奇语言的全部内容,希望文章能够帮你解决夜光带你走进python开发 (三十九)传奇语言所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复