个人编程练习
Posted 有猫27
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了个人编程练习相关的知识,希望对你有一定的参考价值。
一、程序分析
1、读取文件到缓冲区
1 def process_file(dst): # 读文件到缓冲区 2 try: # 打开文件 3 f=open(dst,\'r\') 4 except IOError as s: 5 print (s) 6 return None 7 try: # 读文件到缓冲区 8 x=f.read() 9 except: 10 print ("Read File Error!") 11 return None 12 bvffer=x 13 return bvffer
2、缓冲区字符串分割成带有词频的字典
# 下面添加处理缓冲区 bvffer代码,统计每个单词的频率,存放在字典word_freq
1 def process_buffer(bvffer): 2 if bvffer: 3 word_freq = {} #新建一个空字典word_freq 4 # 下面添加处理缓冲区 bvffer代码,统计每个单词的频率,存放在字典word_freq 5 for word in bvffer.split(): #.split()函数将bvffer切片 6 if word not in word_freq: 7 word_freq[word]=0 8 word_freq[word]+=1 9 return word_freq
3、将字典按词频排序并输出排名前十的键值对
1 def output_result(word_freq): #输出函数 2 if word_freq: 3 sorted_word_freq = sorted(word_freq.items(), key=lambda v: v[1], reverse=True) 4 for item in sorted_word_freq[:10]: # 输出 Top 10 的单词 5 print(item)
4、主程序输出前十结果和分析结果
1 if __name__ == "__main__": 2 import argparse 3 parser = argparse.ArgumentParser() 4 parser.add_argument(\'dst\') 5 args = parser.parse_args() 6 dst = args.dst 7 bvffer = process_file(dst) 8 word_freq = process_buffer(bvffer) 9 output_result(word_freq)
二、代码风格说明
1.使用 4 个空格的缩进
2.使用空行分隔函数和类,以及函数内的大块代码
3.运算符周围和逗号后面使用空格,但是括号里侧不加空格
4.折行以确保其不会超过 79 个字符
三、程序运行结果截图
四、性能分析及改进
1、性能分析
1.1、模块耗用时间可视化操作
- 需要安装:graphviz , "pip install graphviz"; 参考使用cProfile分析Python程序性能:链接
-
下载转换 dot 的 python 代码gprof2dot 官方下载,解压缩,将『gprof2dot.py』 copy 到当前分析文件的路径,或者你系统 PATH 环境变量设置过的路径。
- 执行转换步骤
转换图如下:
以上是关于个人编程练习的主要内容,如果未能解决你的问题,请参考以下文章