zoukankan      html  css  js  c++  java
  • 第一次个人编程作业

    GitHub

    My GitHub

    PSP表格

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

    解题思路

    思考

    看完题目第一反应是正则,虽然其中的部分用正则无法识别,例如福建福州这类没有后缀的,但是时间紧迫,先搞定原始需求;接下来确定技术选择,给的三个c++,python,java,选择较为熟悉的py;确认后开始阅读py正则的文档,过了一遍之后开始编码

    找资料

    设计实践

    代码思路

    首先分析input的数据:示例为 1!李四,福建省福州13756899511市鼓楼区鼓西街道湖滨路110号湖滨大厦一层.

    分析我们需要截取的对象参数:{姓名:'',电话:'',地址:[]}

    其中开头第一个数字为难度,故先截取出难度系数,之后通过不同的难度系数来执行不同的操作

    之后截取出姓名和电话,留下完整的地址信息,最后再通过之前的难度对地址进行分级截取

    实现过程

     

    area1=['省',"(市|自治州)",'(县|区|市)','(镇|街道|乡)',]
    area2=['省','(市|自治州)','(县|区|市)','(镇|街道|乡)','(街|路|巷)','号',]
    
    output['姓名']=re.search(r'd!(.*),',userInput).group(1)#截取姓名
    output['手机']=re.search(r'd{11}',userInput).group()#截取手机
    rank=userInput[0]#难度级别
    area=locals()['area'+rank]#area1或area2
    address=re.sub(r'd{11}','',userInput).split(',')[1].strip('[.]')#完整地址

    单元测试

    1!李四,福建省福州13756899511市鼓楼区鼓西街道湖滨路110号湖滨大厦一层.
    1!张三,福建福州闽13599622362侯县上街镇福州大学10#111.
    1!王五,福建省福州市鼓楼18960221533区五一北路123号福州鼓楼医院.
    1!小美,北京市东15822153326城区交道口东大街1号北京市东城区人民法院.
    1!小陈,广东省东莞市凤岗13965231525镇凤平路13号.
    1!刘湖,吉林省白山市六道江镇西村药店18694520738.
    1!咸陡隐,江苏省苏州市吴江13184142847区平望镇新业织造有限公司吴江区平望镇双浜村村民委员会.

    结果:

      

     {
              姓名: "李四",
              手机: "13756899511",
              地址: [
                "福建省",
                "福州市",
                "鼓楼区",
                "鼓西街道",
                "湖滨路110号湖滨大厦一层"
              ]
            },
            {
              姓名: "张三",
              手机: "13599622362",
              地址: ["", "福州市", "闽侯县", "上街镇", "福州大学10#111"]
            },
            {
              姓名: "王五",
              手机: "18960221533",
              地址: ["福建省", "福州市", "鼓楼区", "", "五一北路123号福州鼓楼医院"]
            },
            {
              姓名: "小美",
              手机: "15822153326",
              地址: ["", "北京市", "东城区", "", "交道口东大街1号人民法院"]
            },
            {
              姓名: "小陈",
              手机: "13965231525",
              地址: ["广东省", "东莞市", "", "凤岗镇", "凤平路13号"]
            },
            {
              姓名: "刘湖",
              手机: "18694520738",
              地址: ["吉林省", "白山市", "", "六道江镇", "西村药店"]
            },
            {
              姓名: "咸陡隐",
              手机: "13184142847",
              地址: [
                "江苏省",
                "苏州市",
                "吴江区",
                "平望镇",
                "新业织造有限公司双浜村村民委员会"
              ]
            }
    

      

    心得体会

    大部分的语言的正则都有相通之处,关键思想是一样的,由于我太菜了,所以没有完成难度3及省市缺失的补全部分,以及希望我的舍友不要熬夜写作业,要注意身体

  • 相关阅读:
    python中的各种排序
    python 实现求和、计数、最大最小值、平均值、中位数、标准偏差、百分比。
    python中的lambda
    python中有趣的函数
    python中的小技巧
    python 删除list中重复元素
    django-pagination的使用
    django-south
    ios复制到剪贴板
    iOS系统验证关闭
  • 原文地址:https://www.cnblogs.com/xxylac/p/11537378.html
Copyright © 2011-2022 走看看