1.自己的基本資訊:
2.程式分析,對程式中的四個函式做簡要說明。要求附上每一段**及對應的說明
第一段:開啟並讀取檔案到緩衝區
def process_file(dst): #第二段:新增處理緩衝區bvffer**,統計每個單詞的頻率,對文字特殊符號進行修改,並讀入字典word_freq讀檔案到緩衝區
try: #
開啟檔案
f =open(dst)
except
ioerror as s:
(s)
return
none
try: #
讀檔案到緩衝區
bvffer =f.read()
except
:
print ("
read file error!")
return
none
f.close()
return bvffer
def第三段:設定輸出函式,進行排序並輸出top 10 的單詞,統計詞頻process_buffer(bvffer):
2 if
bvffer:
3 word_freq ={}
4 #
下面新增處理緩衝區 bvffer**,統計每個單詞的頻率,存放在字典word_freq
5 for item in
bvffer.strip().split():
6 word = item.strip(punctuation+'')
7 if word in
word_freq.keys():
8 word_freq[word] += 1
9 else
:10 word_freq[word] = 1
11 return word_freq
def第四段:呼叫main函式,輸出至控制台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)
if3.效能分析結果及改進程式執行命令、執行結果截圖__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)
用命令python -m cprofile word_freq.py gone_with_the_wind.txt執行:
分析:gone_with_the_wind.txt檔案大小是2.25 m
總共有869127次函式呼叫,程式總共耗時0.443秒
指出執行次數最多的**
執行時間最長的**
給出改進優化的方法以及你的改進**
應改把執行時間最長的**優化一下,函式process_buffer函式中有一行**:
if word in word_freq.keys():該**在for迴圈中,有多少單詞,這個迴圈就會執行多少遍,每次進行條件判斷的時候都要執行一次字典的keys方法,所以耗時很多。於是把keys去除,該行**變為:
if word in word_freq:更改後速度會有明顯提公升
4.總結
在本次課後作業中,使我更加熟練的掌握了碼雲以及部落格網的使用,並且複習了上次作業中git傳輸遠端倉庫的操作,又新學會了如何建立git分支。在python中,又學會了新的函式與語句
並且學會了如何使用使用cprofile進行效能分析已經明白了什麼是效能分析器,相信在以後的學習中,我會更加努力,學到更多的知識。
第三次作業
2 12有600 mb 兆位元組 的資料,需要從南京傳送到北京。一種方法是將資料寫到磁碟上,然後託人乘火車這 些磁碟捎去。另一種方法是用計算機通過長途 線路 設資訊傳送的速率為2.4kb s 傳送此資料。試比較這兩種方法的優劣。若資訊傳送速率為33.6kb s,其結果又如何?解 當傳送速率為2.4k...
第三次作業
1 有600mb 兆位元組 的資料,需要從南京傳送到北京 一種方法是將資料寫到磁碟上,然後託人乘火車將這些磁碟捎去。另一種方法是用計算機通過長途 線路 設資訊傳送的速率為2.4kb s 傳送此資料,試比較這兩種方法的優劣。若資訊傳送的速率為33.6kb s,其結果又如何?解 假定連續傳送且不出錯。若...
第三次作業
p67 2 12 有600mb的資料,需要從南京傳送到北京。一種方法是將資料寫到磁碟上,然後託人乘火車將這些磁碟捎去。另一種方法是用計算機通過長途 線路 設資訊傳送的速率是2.4kbps 傳送此資料。試比較這兩種方法的優劣。若資訊傳送速率為33.6kbps,其結果又如何?解 1 t 600 1024...