軟體工程:第三次作業 2023年3月28日
學號:2015035107191
姓名:鐵馳
我的碼雲倉庫:
1) 程式分析,對程式中的四個函式做簡要說明。要求附上每一段**及對應的說明。
第一段 讀檔案到緩衝區
from string import punctuation
def process_file(dst): # 讀檔案到緩衝區
try: # 開啟檔案
f =open("gone_with_the_wind.txt","r")
except ioerror:
return none
try: # 讀檔案到緩衝區
bvffer = f.read()
except:
print ("read file error!")
return none
f.close()
return bvffer
第二段 對緩衝區進行處理
def process_buffer(bvffer):
if bvffer:
word_freq = {}
# 下面新增處理緩衝區 bvffer**,統計每個單詞的頻率,存放在字典word_freq
bvffer=bvffer.lower()
for x in '@¥@¥@¥@¥@¥@¥':
bvffer=bvffer.replace(x, " ")
words=bvffer.strip().split()
for word in words:
word_freq[word]=word_freq.get(word,0)+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 cprofile
import pstats
cprofile.run("main()", "result")
# 直接把分析結果列印到控制台
p = pstats.stats("result")
p.strip_dirs().sort_stats("call").print_stats()
p.strip_dirs().sort_stats("cumulative").print_stats()
p.print_callers(0.7, "process_file")
p.print_callers(0.7, "process_buffer")
p.print_callers(0.7, "output_result")
3) 效能分析結果及改進。
剛開始程式報錯(print(item))改進後,程式正常執行。
4) 程式執行命令、執行結果截圖以及改進後的程式執行命令及結果截圖 。
5) 給出你對此次任務的總結與反思。
總結:通過本次任務,我認識到了自己對python的諸多不足。有很多需要學習的地方。
軟體工程第三次作業
影印機的工作過程大致如下 未接到影印命令時處於 閒置 狀態,一旦接到 影印命令 則進入 影印 狀態,完成乙個影印命令 規定的工作後又回到閒置狀態,等待下乙個影印命令 如果執行影印命令時 發現沒紙 則進入 缺紙 狀態,發出警告,等待裝紙,裝滿紙 後進入閒置狀態,準備接收影印命令 如果影印時發生 卡紙故...
軟體工程第三次作業
最大連續子陣列和 最大子段和 問題 給定n個整數 可能為負數 組成的序列a 1 a 2 a 3 a n 求該序列如a i a i 1 a j 的子段和的最大值。當所給的整數均為負數時定義子段和為0,依此定義,所求的最優值為 max,1 i j n 例如,當 a 1 a 2 a 3 a 4 a 5 a...
軟體工程第三次作業
這個作業屬於哪個課程 這個作業要求在 這個作業的目標 1 對比原型設計工具 2 需求分析 3 原型設計 因為之前對原型設計一點了解都沒有,所以我選擇通過對這三款軟體的第一印象以及後面的深入了解的方式來對比這三款原型設計工具的不同之處 外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳 img...