1.github地址
[github地址](https://github.com/b666666666666666b)
2.psp表格

3.解題思路描述
即剛開始拿到題目后,我就想着用正則匹配數字、‘省’、‘市’等關鍵字,然后把他們丟到json里面,然后我就去復習了一下正則表達式的用法,還有怎么搞一個json文件出來。學完之后就開始用敲代碼。敲完之后發現有可能出現省,市等關鍵詞缺失的情況。然后我就去把省市信息的文件直接放在代碼里,讓程序去匹配名字。
4.設計實現過程
有一個類,類里面有九個函數,分別是:get_type,get_num,get_name,get_two_levels,get_xian,get_xiang,last_two_level,last_level,get_dic
流程圖如下

5.計算模塊接口部分的性能改進
說實話我沒怎么去關注性能的改進,我覺得這次作業的主要矛盾是正確率,快不快已經不重要了,而且我也不具備性能改進的能力,能把正確率上去我就很滿足了。性能分析圖如下,我循環了十萬次。


消耗最大的就是匹配省級和市級的函數get_two_levels
6.計算模塊部分單元測試展示
單元測試使用python的unittest模塊,具體代碼如下
import unittest
from a import p_info
class TestDict(unittest.TestCase):
def test_num(self):
p = p_info()
p.num = 123
self.assertEqual(p.num, 123)
def test_name(self):
p = p_info()
p.name = '123'
self.assertEqual(p.name, '123')
def test_run_all(self):
file1 = open('test5.txt', 'r')
file2 = open('output5.txt', 'r')
for i, j in file1.readlines(), file2.readlines():
p = p_info()
p.run_all()
self.assertEqual(file2,p.res )
if __name__ == "__main__":
unittest.main()
7.計算模塊部分異常處理說明
參考別人的博客寫幾個異常處理
(1)只有電話,沒有地址
try:
twowords=string2[0:2]
except AttributeError:
print('沒有輸入地址')
輸入1!雍廠賞,15578766416.時就不會發生錯誤
8.學習心得
這個作業有點難,害得我中秋都不能開開心心打游戲,勉強把作業做完了。
