- 学号:2017*****1101
- 姓名:孟昊
- 码云地址:https://gitee.com/mh-22/word_frequency/tree/SE1101
一、程序分析
1、读文件到缓冲区
# filename: word_freq.py # 阅读注释,在所有pass处删除pass,添加代码
from string import punctuation
def process_file(dst): # 读文件到缓冲区 try: # 打开文件 f = open(dst, 'r') except IOError as s: print (s) return None try: # 读文件到缓冲区 bvffer = f.read() except: print ("Read File Error!") return None f.close() return bvffer
2、添加处理缓冲区 bvffer代码,统计每个单词的频率,存放在字典word_freq
def process_buffer(bvffer):
if bvffer: word_freq = {} # 下面添加处理缓冲区 bvffer代码,统计每个单词的频率,存放在字典word_freq bvffer = bvffer.lower() for ch in '"‘!;,.?"': bvffer = bvffer.lower().replace(ch, " ") words =bvffer.strip().split() for word in words: word_freq[word] = word_freq.get(word, 0)+1 return word_freq3、输出 Top 10 的单词
def output_result(word_freq): if word_freq: sorted_word_freq = sorted(word_freq.items(), key=lambda v: v[1], reverse=True) for item in sorted_word_freq[:10]: # 输出 Top 10 的单词 print (item[0], item[1])
4、'main'函数测试
if __name__ == "__main__":
dst = 'A_Tale_of_Two_Cities.txt' dst = 'Gone_with_the_wind.txt' bvffer = process_file(dst) word_freq = process_buffer(bvffer) output_result(word_freq)二、性能分析结果及改进。
执行次数最多的代码和执行时间最长的代码
三、程序运行命令、结果截图。
四、给出你对此次任务的总结与反思。
还有很多不会,争取下次可以做会。