我的Github地址:https://github.com/ruinzly/031702506
||||||||||||||
|:--|:--|:--|:--|
|** PSP2.1| Personal Software Process Stages |预估耗时(分钟)|实际耗时(分钟)**|
| Planning |计划|30|35|
| Estimate |估计这个任务需要多少时间|5|5|
| Development |开发|0|0|
|Analysis |需求分析 (包括学习新技术)|60|40|
| Design Spec |生成设计文档|5|5|
| Design Review |设计复审|5|5|
| Coding Standard |代码规范 (为目前的开发制定合适的规范)|0|0|
| Design |具体设计|400|480|
| Coding |具体编码|0|0|
| Code Review |代码复审|0|0|
| Test |测试(自我测试,修改代码,提交修改)|0|0|
| Reporting |报告|0|0|
| Test Repor |测试报告|0|0|
| Size Measurement |计算工作量|10|5|
| Postmortem & Process Improvement Plan |事后总结, 并提出过程改进计划|60|30|
| |合计|575|605|
心路历程
刚开始拿到这个题目的时候,我感觉这次估计要凉了!因为做的题目有限,所以从来没碰过这种题目,题目那么长真的吓到我了!后面觉得还是要做的,就静下心思考这个问题,分析之后感觉用python可能会比较好做一点。后面就开始疯狂补习相关知识,装pycharm等等等等(其实是因为java不会,c++感觉打这个实在是太难了555)。之前本来安装的是sublime text 3,好不容易按下来又要安装很多插件,估计是下了一个假的软件,哪哪插件都安不成功,最后面就选pycharm了。听别的同学说正则表达式好强大,于是就又百度这个到底是啥(过程实在太艰辛!)。反正就至始至终抱着一个可以学到知识的心态来做这个题目,分数啥的都不考虑了(这个简直就是奢望)。后面幸好还打出来了那么些,真是太欣慰了!
python解题思路
首先引入了两个模块分别是re模块和json模块,其中调用的函数有re.sub函数、re.findall函数、split函数、group函数、append函数等等。
(1)创建省、市、县区的列表
(2)首先利用分片sub函数以“,”进行一次切割分成两个字符串
(3)创建字典,将第一个字符串导入字典中去。
(4)利用正则法则与第二个字符串进行相应匹配,匹配完后就删除相应的字符
(5)最后以json文件输出
查找资料
(1)python3菜鸟教程
(2)python正则表达式的使用
实现过程
代码首先用分片函数以“,”分割为姓名+其他的两个字符串,再通过字符串与列表进行比对查询分别分割出省、市、县区等等其他的七级,全篇的精髓在于打表的规律以及正则表达式。
代码独到之处
打表顺序
正则表达式
单元测试
2!李四,福建省福州13756899511市鼓楼区鼓西街道湖滨路110号湖滨大厦一层.
'地址': ['福建省', '福州市', '鼓楼区', '鼓西街道', '湖滨路', '110号', '湖滨大厦一层']
1!小王,福建省福州13756899511市鼓楼区鼓西街道湖滨路110号湖滨大厦一层.
'姓名':'小王'
2!王五,福建省福州市鼓楼18960221533区五一北路123号福州鼓楼医院.
'姓名':'王五'
1!小陈,广东省东莞市凤岗13965231525镇凤平路13号.
'手机': '13965231525'
性能测试