作业03
2017****7506
郭昕宇
码云项目仓库:https://gitee.com/guoxiaoyuxiao/SE7506/tree/master
2) 程序分析,对程序中的四个函数做简要说明。要求附上每一段代码及对应的说明。
1.读文件到缓存区
2.统计每个单词的频率
3.输出Top 10 单词
4.导入argparse库用于解析命令行数据,依次执行函数
在命令中输入python word_freq.py Gone_with_the_wind.txt
运行代码
结果如下,输出了词频Top10的单词和次数:
3) 性能分析结果及改进。
使用cProfile进行性能分析 python -m cProfile word_freq.py Gone_with_the_wind.txt
上图显示有1732200次函数调用,程序总共耗时386.826秒
回到代码中发现process_buffer函数中的for循环内有一句if word in word_freq.keys():
而遍历字典循环中每执行一次就要调用字典word_freq的keys()方法,但实际不需要再提取字典中的值(keys),直接判断word在字典word_freq中是否存在就可以了,所以去掉keys() 法,将代码修改为if word in word_freq:
优化后显示有891908次函数调用,程序总共耗时0.702秒
4) 给出你对此次任务的总结与反思。
对于Python还是没有那么深的了解,运用的不那么流畅,对自己不满意。在完成作业的过程中我寻求了同学的帮助,认真的向他请教。