GitHub倉庫:https://github.com/15crmor/PACgit
基本要求github
-c 統計文件字符數 (實現)正則表達式
-w 統計文件詞數 (實現)學習
-l 統計文件行數(實現)測試
擴展功能編碼
高級功能spa
1. 遍歷文件命令行
def recursive(list): f_list = os.listdir(list) return f_list
2. 統計字符數設計
def str_count(name): with open(name, 'r', encoding='UTF-8') as f: n = 0 for line in f.readlines(): n += len(line) return n
3. 統計行數3d
def line_count(name): with open(name, 'r', encoding='UTF-8') as f: n = 0 for line in f: n += 1 return n
4. 統計單詞數
import re def words_count(name): with open(name, 'r', encoding='UTF-8') as f: n = 0 for line in f.readlines(): list_match = re.findall('[a-zA-Z]+', line.lower()) n += len(list_match) return n
5. 統計空行/代碼行/註釋行數
def code_count(name): with open(name, 'r', encoding='UTF-8') as f: code_lines = 0 comm_lines = 0 space_lines = 0 for line in f.readlines(): if line.strip().startswith('#'): comm_lines += 1 elif line.strip().startswith("'''") or line.strip().startswith('"""'): comm_lines += 1 elif line.count('"""') == 1 or line.count("'''") == 1: while True: line = f.readline() comm_lines += 1 if ("'''" in line) or ('"""' in line): break elif line.strip(): code_lines += 1 else: space_lines += 1 return code_lines, comm_lines, space_lines
6. 命令行邏輯
def wc(f, arg): if arg[1] == '-c': str_num = str_count(f) print(f + "文件字符數爲: ", str_num) elif arg[1] == '-w': word_num = words_count(f) print(f + "文件單詞數爲:", word_num) elif arg[1] == '-l': line_num = line_count(f) print(f + "文件行數爲:", line_num) elif arg[1] == '-a': code_lines_num, comm_lines_num, space_lines_num = code_count(f) print(f + "文件代碼行爲:", code_lines_num) print("註釋行爲:", comm_lines_num) print("空行爲:", space_lines_num)
因爲事先設置了工做路徑因此默認路徑與代碼所在路徑不一樣
PSP2.1 |
Personal Software Process Stages |
預估耗時(分鐘) |
實際耗時(分鐘) |
Planning |
計劃 |
60 |
60 |
· Estimate |
· 估計這個任務須要多少時間 |
60 |
60 |
Development |
開發 |
300 |
360 |
· Analysis |
· 需求分析 (包括學習新技術) |
60 |
100 |
· Design Spec |
· 生成設計文檔 |
30 |
30 |
· Design Review |
· 設計複審 (和同事審覈設計文檔) |
20 |
30 |
· Coding Standard |
· 代碼規範 (爲目前的開發制定合適的規範) |
30 |
20 |
· Design |
· 具體設計 |
30 |
30 |
· Coding |
· 具體編碼 |
240 |
300 |
· Code Review |
· 代碼複審 |
30 |
40 |
· Test |
· 測試(自我測試,修改代碼,提交修改) |
60 |
60 |
Reporting |
報告 |
20 |
30 |
· Test Report |
· 測試報告 |
60 |
60 |
· Size Measurement |
· 計算工做量 |
20 |
20 |
· Postmortem & Process Improvement Plan |
· 過後總結, 並提出過程改進計劃 |
20 |
30 |
合計 |
|
1040 |
1220 |
之前寫代碼從沒考慮過這麼多,老是思考一陣以後便直接上手,遇到什麼問題就查書查網上資料解決,忽然想改就把以前寫的模塊推翻重來,所以也作了很多無用功,並且也不多總結,如今這樣雖然工做量多了可是卻感受比之前開發要更快,少走了很多彎路,並且有寫了博客後也感受比以前掌握的更加紮實。