今天编的这个小程序是哈姆雷特中的词频统计,即统计哈姆雷特中各个词语出现的频率。我第一次尝试了使用自顶向下的设计方法和自下向上的执行方法。期间出现了很多错误,在此记录,以免日后再犯。

编程前截取网上Hamlet其中的一段,要注意的是:保存为txt类型时,编码方式选择'utf-8'。如图:

接下来分析整个编程的题目,并列出步骤:

第一步,打开文件并读取,将每个单词都分割开。

第二步,考虑到大小写的问题,将所有的字母都换为小写。

第三步,统计每个单词出现的频率,并高至低输出。

由此,主函数main()为:

split()函数将文件中的单词读取并分割开来,得到splitwords的列表,swapcase()函数将全部单词转换为小写模式,得到新的列表。countTimes()函数统计每个单词出现的频率,以字典的形式输出。outputs()函数和sorts()函数排序输出。

代码如下:

调试程序时发现了很多错误:

1.对象的使用方法上:如s1.replace后并没有将更新的字符串在赋给s1。return ls.sort直接返回,造成返回的结果为空值。应返回ls,而不是返回一个方法过程。

2.循环时,总是少加range。

3.定义的split()函数不能以'\n‘分割,需以空格分割。

程序结果如下,没有格式输出。

日后还要多加练习。

转载于:https://www.cnblogs.com/pengu/p/9564411.html

Python学习心得(一):词频统计,自顶向下设计相关推荐

  1. python学习笔记__词频统计

    统计英语6级试题中所有单词的词频,并返回一个如下样式的字典 {'and':100,'abandon':5} 英语6级试题的文件路径./artical.txt Tip: 读取文件的方法 def get_ ...

  2. 使用Python+NLTK实现英文单词词频统计

    使用Python+NLTK实现英文单词词频统计 使用PythonNLTK实现英文单词词频统计 应用场景 Fork Me 参考运行环境 流程步骤图 详细步骤 读取文件 过滤特殊符号以及还原常见缩写单词 ...

  3. python学习笔记(15)循环设计

    python学习笔记(15)循环设计 原链:http://www.cnblogs.com/vamei/archive/2012/07/09/2582435.html 注意:zip()在python2 ...

  4. 大一上学期Python学习心得体会

    Python学习心得体会 经过了大一上学期的Python学习,我已经逐渐摸索到了Python的一些学习方法,学习Python,就像学习其他编程语言或者是学习一门外语一样 ,我们应该从Python的基础 ...

  5. Python中文分词及词频统计

    Python中文分词及词频统计 中文分词 中文分词(Chinese Word Segmentation),将中文语句切割成单独的词组.英文使用空格来分开每个单词的,而中文单独一个汉字跟词有时候完全不是 ...

  6. python学习心得(一)

    python学习心得 人生苦短,我用python.看到python有那么多开放的库,短短几行代码就能搞定一个项目,有点面向对象的经验确实很容易学习. 1. 语法基础 2. 项目练习 3. 项目过程中的 ...

  7. python红楼梦人物词频统计_用 Python 分析《红楼梦》

    1 前言 两个月以来,我通过互联网自学了一些文本处理的知识,用自然语言处理和机器学习算法对<红楼梦>进行了一些分析.这个过程中我找到了一些有趣的发现,所以我想写一篇文章,既㲌与大家分享和讨 ...

  8. python红楼梦人物词频统计_通过数据挖掘能分析《红楼梦》各回的真伪吗?

    可以的.小智最近就尝试通过用机器学习的方法,分析了一下红楼梦后四十回的真伪. 以下内容引自小智的微信公众号,转载需申请授权. ------------------------------------- ...

  9. Python实例分析——文本词频统计

    基于中国大学mooc网嵩天老师的<Python语言程序设计>课程实例 文章目录 一.数字文本 pi 二.英文文本 *Hamlet* 三.中文文本<三国演义> 一.数字文本 pi ...

最新文章

  1. centos7使用yum安装jdk并配置jdkhome
  2. [转]Oracle 初始化参数之cursor_sharing
  3. dede 验证码不显示 vdimgck.php,Dede后台验证码不显示解决方法详解(dedecms 5.7)
  4. IOS基础之segue使用,
  5. 输出毫秒_自学单片机第十三篇上:单点输出
  6. python开发之路目录
  7. 数据库工作笔记012---mysql触发器trigger 实例详解_保证数据库完整性还是不错的
  8. jmeter性能测试_JMeter性能测试,接口测试,最全的JMeter资料,共计3.16G
  9. PHP7中异常与错误处理与之前版本对比
  10. 计算机基础知识复习(一)
  11. 退货地址导出(拼多多)
  12. 前端字体图标的下载与使用
  13. 罗振宇2021“时间的朋友·长大以后”跨年演讲全文无删减整理,核心观点、大纲提炼
  14. ubuntu测试键盘工具_Lubuntu安装屏幕键盘onboard,使触摸屏可以登录和输入
  15. WebSphere管理控制台端口号如何查看
  16. VMware创建共享文件夹并实现文件传输(Windows主机,Ubuntu虚拟机)
  17. 《大学“电路分析基础”课程实验合集.实验五》丨线性有源二端网络等效电路的研究
  18. CSS系列之修改滚动条的样式
  19. 怎么快速判断互质数?
  20. Java中String中split方法

热门文章

  1. Python学习Day17
  2. Ubuntu和windows之间复制粘贴,遇到无法安装Vmware-tools
  3. android activity切换动画关闭,Activity取消界面切换的默认动画方法(推荐)
  4. 让人懵逼的宏定义赋值
  5. 混合波束成形|重叠子阵结构下的HBF探讨
  6. QQ浏览器彻底卸载方式
  7. 告别单调, 给Unity编辑器换一个皮肤吧
  8. 百度富文本编辑器ueditor在https协议下无法正常插入动态地图
  9. 2017年大数据领域薪资有多高?
  10. 如何有效进行项目集管理?