第一次个人编程作业

1.github

 

2.

PSP2.1Personal Software Process Stages预估耗时(分钟)实际耗时(分钟)
Planning 计划 30 70
Estimate 估计这个任务需要多少时间 75 75
Development 开发 60 120
Analysis 需求分析 (包括学习新技术) 400 600
Design Spec 生成设计文档 30 15
Design Review 设计复审 30 15
Coding Standard 代码规范 (为目前的开发制定合适的规范) 30 10
Design 具体设计 60 50
Coding 具体编码 300 400
Code Review 代码复审 30 30
Test 测试(自我测试,修改代码,提交修改) 120 200
Reporting 报告 120 100
Test Repor 测试报告 60 90
Size Measurement 计算工作量 20 15
Postmortem & Process Improvement Plan 事后总结, 并提出过程改进计划 60 15
  合计 1425 1760

 

3.解题思路

 

 听说用python比较简单,于是以前没有学好C++的我决定先学习python,我花了大量的时间学习,看的是廖雪峰的教程。大概过了一遍后,一开始想直接用正则表达式切出地址,后来发现有些地址没有省和市,又想通过打表来做,但是发现了一篇使用python提取中文地址描述中的省市区信息的博客,天真的以为问题已经解决,但当我花了很多时间导入这个模块后,发现它生成的数据类型是dataframe,我找不到把它转化成json的方法,这时候留给我的时间已经不多了,于是我就索性按带有后缀的地址来做了,并特殊讨论了一下直辖市。具体过程是:

1.用正则表达式把难度提取出来

2.用正则表达式把手机号提取出来

3.切出地址

4.按地址的级别从高到底再切出来,并且切一个删一个,放入地址数组中

 

4.设计实现过程

由于时间不足,我直接用面向过程的方法实现了我的思路,直接用了if的判断,甚至连函数都没有用,更没有类了。

 

5.改进过程

发现了正则的贪婪匹配有时候会匹配过长的地址,用?并把匹配的字符串从地址中删除疑似解决了。中途为了导入第三方模块我重新下载了3次python,但是最后发现好像没法用...

 

6.代码说明

province = re.search(r'(\w+省)|(\w+自治区)|(北京市|上海市|天津市|重庆市)',address)
    if province:  #如果省级存在
        if re.match(r'(北京市)|(上海市)|(天津市)|(重庆市)',province.group()):
            area.append(province.group()[0:2])
        else:
            area.append(province.group())
    else:
        area.append("")   #省级不存在的话往数组里放入空
    address1 = re.sub(province.group(), "", address) #去掉省级之后的地址  

其余的市,区等方法类似。

测试运行的结果

 

7.心路历程和收获

小王真是太粗心了......我花了大量的时间完成这次作业,主要是用来学习,收获还是很大的,由于时间不足,3!难度的题没有做。这次作业让我入门学习了那么一点点的python,希望后续可以继续学下去。最后希望我的舍友不要再通宵了!

posted @ 2019-09-17 22:31  11111111111  阅读(203)  评论(6编辑  收藏  举报