1. 程式人生 > >軟工作業 3:個人編程

軟工作業 3:個人編程

align 作業 輸出 ima bsp 打開文件 reverse text pro

一、程序分析

def process_file(dst): # 讀文件到緩沖區
try: # 打開文件
f=open(dst,‘r‘)
except IOError as s:
print (s)
return None
try: # 讀文件到緩沖區
x=f.read()
except:
print ("Read File Error!")
return None
bvffer=x
return bvffer

def process_buffer(bvffer):
if bvffer:
word_freq = {} #新建一個空字典word_freq
# 下面添加處理緩沖區 bvffer代碼,統計每個單詞的頻率,存放在字典word_freq
for word in bvffer.split(): #.split()函數將bvffer切片
if word not in word_freq:
word_freq[word]=0
word_freq[word]+=1
return word_freq

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)

if __name__ == "__main__":
import argparse
parser = argparse.ArgumentParser()
parser.add_argument(‘dst‘)
args = parser.parse_args()
dst = args.dst
bvffer = process_file(dst)
word_freq = process_buffer(bvffer)
output_result(word_freq)

二、代碼風格說明

if/for/while一定要換行

例如:

if bvffer:
word_freq = {}

三、程序運行命令、運行結果截圖

技術分享圖片

技術分享圖片

四、性能分析結果及改進

執行時間最多的代碼:

技術分享圖片

執行次數最多的代碼:

技術分享圖片

軟工作業 3:個人編程