第一次我的編程做業

一.GITHUB連接:

https://github.com/yaoxuan2018/031702341python

二.PSP表格

PSP2.1 Personal Software Process Stages 預估耗時(分鐘) 實際耗時(分鐘)
Planning 計劃 30 40
· Estimate · 估計這個任務須要多少時間 600 800
·Development 開發 400 500
· Analysis · 需求分析 (包括學習新技術) 100 120
· Design Spec · 生成設計文檔 80 60
· Design Review · 設計複審 30 40
· Coding Standard · 代碼規範 (爲目前的開發制定合適的規範) 60 50
· Design · 具體設計 100 80
· Coding · 具體編碼 150 250
· Code Review · 代碼複審 30 30
· Test · 測試(自我測試,修改代碼,提交修改) 150 250
·Reporting 報告 100 110
· Test Repor · 測試報告 50 40
· Size Measurement · 計算工做量 30 40
· Postmortem & Process Improvement Plan · 過後總結, 並提出過程改進計劃 60 40
· 合計 1970 2450

三.計算模塊接口的設計與實現過程

大概思路以下:首先是採用判斷關鍵字來劃分的方向,語言是用python。拿到用input函數拿到一個字符串,再用字符串的split函數劃分出題目的難度等級以及姓名。電話號碼的提取是用re模塊的正則表達式,其間還處理若是沒有號碼或者號碼不正確的狀況。接着剩下沒處理的能夠拼接起來造成地址,再來就是劃分地址的工做。引入cpca模塊,用transform函數劃分出前三級(實際是用了jieba模塊的切詞,再去cpca庫裏匹配出省市縣),難度一里面的第四級行政區地址上網了一下,發現只有七種類別,直接上關鍵字判斷(其實是用split函數對關鍵字防割),判斷完了以後,天然難度一也結束了。難度二的話除了第四級地址的判斷,再引入了第六級地址的判斷(xx號/弄…)。難度三的話,目前想到除了遍歷之外沒啥法子,而遍歷還須要爬箇中國全部行政區地址文件……git

四.計算模塊接口部分性能

函數調用圖:
github

時間開銷圖:
正則表達式

五.單元測試

輸入:函數

1!毆刪譚,河北承德承15076364360德縣崗子滿族鄉253省道齊家營中心幼兒園.性能

1!權暖,13252438214海南省三亞崖城鎮111鄉道抱古村農場.單元測試

1!濮陽逛,河南省南15694715825陽市方城縣清河鎮010鄉道尚營村委會.學習

1!何擒,上海徐彙區湖13009955601南路街道汾陽路9弄復襄居委社區活動室.測試

2!郟稀,重慶豐13215590422都縣三建鄉石龍門村衛生室.編碼

2!楚渦握,湖北隨州隨縣吳山鎮18883549874唐王街聯宏村委會.

2!夾谷掄枯,甘肅蘭州城關區18795320124皋蘭路街道皋蘭路210號鄭家臺小區.

2!茅參,上海嘉定區13347914736馬陸鎮嘉新公路1157號樊家村1256號樓.

3!黃馬,甘肅省武威98765432105市涼州區東大街街道北觀衆路3號3樓.

3!羊舌線,福建省福州鼓樓區鼓東街13827706785道慶城路慶城社區.

輸出:

{"姓名": "毆刪譚", "手機": "15076364360", "地址": ["河北省", "承德市", "承德縣", "崗子滿族鄉", "253省道齊家營中心幼兒園"]}

{"姓名": "權暖", "手機": "13252438214", "地址": ["海南省", "三亞市", "", "崖城鎮", "111鄉道抱古村農場"]}

{"姓名": "濮陽逛", "手機": "15694715825", "地址": ["河南省", "南陽市", "方城縣", "清河鎮", "010鄉道尚營村委會"]}

{"姓名": "何擒", "手機": "13009955601", "地址": ["上海", "上海市", "徐彙區", "湖南路街道", "汾陽路9弄復襄居委社區活動室"]}

{"姓名": "郟稀", "手機": "13215590422", "地址": ["重慶", "重慶市", "豐都縣", "三建鄉", "", "", "石龍門村衛生室"]}

{"姓名": "楚渦握", "手機": "18883549874", "地址": ["湖北省", "隨州市", "隨縣", "吳山鎮", "唐王街", "", "聯宏村委會"]}

{"姓名": "夾谷掄枯", "手機": "18795320124", "地址": ["甘肅省", "蘭州市", "城關區", "皋蘭路街道", "皋蘭路", "210號", "鄭家臺小區"]}

{"姓名": "茅參", "手機": "13347914736", "地址": ["上海", "上海市", "嘉定區", "馬陸鎮", "嘉新公路", "1157號", "樊家村1256號樓"]}

{"姓名": "黃馬", "手機": "98765432105", "地址": ["甘肅省", "武威市", "涼州區", "東大街街道", "北觀衆路", "3號", "3樓"]}

{"姓名": "羊舌線", "手機": "13827706785", "地址": ["福建省", "福州市", "鼓樓區", "鼓東街道", "慶城路", "", "慶城社區"]}

代碼覆蓋率:

六.計算模塊部分異常處理說明

輸入:

2!邰爺金, 遼寧省營口市站前區新華東路10-甲5號中共15384771154八田地街道社區委員會

輸出:

{"姓名": "邰爺金", "手機": "15384771154", "地址": ["遼寧省", "營口市", "站前區", " 遼寧省營口市站前區新華東路10-甲5號中共八田地街道", "", "", "社區委員"]}

分析:對於第四級的七種狀況劃分,就怕會遇到一些這樣的狀況,相關的關鍵字在本級缺失,卻在後面出現,那叫一個措手不及,可又迫不得已,感受是一個極限了(上面的街道是第七級的,原本街道所屬是行政區第四級,但這地址第四級缺失)

相關文章
相關標籤/搜索