2017xxxxx1066;我是骆树仁
本次作业的码云仓库:https://gitee.com/sturdast/word_frequency/tree/SE1066/

一、程序分析说明

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

这个程序的实现效果是,打开一个文件,可以读取里面的文章,统计单词的使用频率并打印,

它的基本要求是:

  • 要用python word_freq.py [文件名]指令来运行
  • 统计频率后将结果放在字典word_freq
  • 输出使用率排行前十的单词

这个程序用了argparse模块来实现第一个效果,将命令行中输入的文件名带到程序中去运行。

然后用process_file(dst)函数读取文件内容,将结果传递给process_buffer(bvffer)函数进行统计,最后用output_result(word_freq)函数输出排行前十的单词

二、代码及运行结果的截图

2019/4/8软工作业 随笔 第1张

 

2019/4/8软工作业 随笔 第2张

三、性能分析

输入指令后性能测试结果如下:

 

2019/4/8软工作业 随笔 第3张

 

2019/4/8软工作业 随笔 第4张

2019/4/8软工作业 随笔 第5张

2019/4/8软工作业 随笔 第6张

2019/4/8软工作业 随笔 第7张

 

 

这其中,运行次数最多的代码是这条:

2019/4/8软工作业 随笔 第8张

但他运行的总时间似乎并不长。

运行时间最久的代码是这条:

2019/4/8软工作业 随笔 第9张

四、改进

这条运行时间最久的代码是我加入的用来统计单词的代码:

2019/4/8软工作业 随笔 第10张

虽然很想改进这段代码,但我思考了一会后觉得这段代码已经十分精简,而且每行的功能都很关键,似乎很难再改进了,所以我没有改进后的文件和截图。

五、总结反思

在这次作业中练习到了:

  • 文件的简单操作函数
  • 用来统计字符的简单算法

这个程序的代码,大多都装在函数里,主程序只需要去调用这些函数就行了,我觉得这样写看起来比较轻松,有条理,可读性高。

bvffer这个变量在整个程序过程中传递了很多数据,如果是我来写的话,我会多设置好几个变量去完成这些工作,这样写应该会减少程序使用的资源。

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄