PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 15 | 25 |
Estimate | 估计这个任务需要多少时间 | 1730 | 2085 |
Development | 开发 | 140 | 200 |
Analysis | 需求分析 (包括学习新技术) | 160 | 200 |
Design Spec | 生成设计文档 | 30 | 30 |
Design Review | 设计复审 | 25 | 30 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 30 | 60 |
Design | 具体设计 | 20 | 40 |
Coding | 具体编码 | 800 | 850 |
Code Review | 代码复审 | 60 | 60 |
Test | 测试(自我测试,修改代码,提交修改) | 60 | 70 |
Reporting | 报告 | 180 | 230 |
Test Repor | 测试报告 | 60 | 60 |
Size Measurement | 计算工作量 | 30 | 30 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 120 | 200 |
合计 | 1730 | 2085 |
心路历程
说实话刚进入这次作业的时候,我还没看到这次编程内容,就被各种要求吓住了,作业要求各种性能分析啥呀,单元测试啥的我真的之前没见过。还要用github啥的,而且看到还要用c++,java或者python3编程的时候,我顿时觉得鱼生无望。开始悔不当初,为什么前两年不好好学习,现在自己c++不6,java不会,python只会一点点,我拿什么去编程!!!但是不管怎么说,就算自己在菜,分数还是要拿的,作业还是要做的,大不了爆肝学习。接着,我就看到了本次编程的题目。大概的内容就是切割字符串,将它们排好。一开始我想用c++的,毕竟三种语言中,我最眼熟它。但是听从了别的同学的建议,用python3相对好做些,积极听取良言,内心os:反正我都不会,都要开天辟地,择取佳径。
其中我用到的函数有:re.findall,splist
python解题思路
(1)利用分片函数将名字和地址分成两个字符串
(2)利用正则化将一次将各级地址提取出来,遇到一些不规则的地址,通过查表提取
(3)以json的形式输出
查找资料
(1)python3的基本使用,尤其是正则化的用法
(2)如何暴力打多级表
实现过程
一开始我没有想到用正则化的方法解决这个问题的,我是想用关键词,比如省和市这样子来对字符串进行分割的,但是实现的过程是在有点复杂,你要考虑字符串指针的移动,写了几行代码我就进入了死胡同,脑袋当机了。这个时候我发现了正则化方法,看了简介我发现它真的十分适合我现在的需求。于是,我就去网络上找了正则化的教程,反正就是来来去去看了十几个相关博客,我开始自己慢慢尝试。先是提取名字,接着是提取号码,这两个还是比较幸运的,几次就成功了。接下来就是提取地址了,还是要根据关键词,事实证明网络上的一些教程并不是适合所有操作系统,走了很多弯路,我终于可以正确提取地址了。但是高兴之余,我发现了一个重要的问题,一开始我是利用关键词对地址进行提取,那如果没有关键词呢?于是乎,我就想到了一个比较老实的想法,暴力打表,然后在查询。
其中包含的函数有:re.findall、replace、append、split、json.dumps。
独到之处及关键之处
打表查询这个很关键,解决了很多问题。配合上正则化的方法节省了一些时间。
单元测试
2!李四,福建省福州13756899511市鼓楼区鼓西街道湖滨路110号湖滨大厦一层.
'地址': ['福建省', '福州市', '鼓楼区', '鼓西街道', '湖滨路', '110号', '湖滨大厦一层']
1!小王,福建省福州13756899511市鼓楼区鼓西街道湖滨路110号湖滨大厦一层.
'姓名':'小王'
2!王五,福建省福州市鼓楼18960221533区五一北路123号福州鼓楼医院.
'姓名':'王五'
1!小陈,广东省东莞市凤岗13965231525镇凤平路13号.
'手机': '13965231525'
目前只能做到1!和2!难度,3!要是有时间我愿意去尝试,但是感觉好难啊!
性能测试
卑微卓卓在线枯萎,我是在没有精力去改进性能了,真的是学到脑袋秃了,之前尝试了,感觉性能没有优化多少,放弃!
异常分析
提示变量类型错误,原因是因为我定义二级搜索表时,少写了一个参数,导致无法匹配
心路历程和收获
虽然这次编程过程可以说是从零开始,开天辟地,熬夜,不仅身累,心里更累。做这个作业的时候,我都开始怀疑自己是不是不适合学习计算机,但是我转念想了想,没有什么适不适合,只有你愿不愿意。这次作业我还是收获了很多的,我看到了自身的一定潜力。我第一次这么用心做一次作业,虽然我觉得很累,但是当看到代码结果出来的那一个,更多的是喜悦。时间太短,我只能尽力去做一些东西。虽然结果可能不是太好,但是我还是很满足。还有啊,我从这次作业中发现到了python的有趣和强大,我觉得我可以往python这条路走下去。另外百度真的是个好东西,零基础,一夜从无到有是我从使用百度后得到的感受。既然都接触了c++和python,我觉得我也很有必要去接触一下java,据说它是一种比较难学的语言,但是经历了这次,我将无所畏惧哈哈哈。我觉得平时还是要多利用课余时间学习的,一边用一边百度,虽然很方便,但是总觉得自己不太专业。最后,我从这次作业中,还收获到了一句口头禅:我感觉自己要枯萎了。