第一次个人编程作业

[仓库地址] (https://github.com/TPhappy/031702512)

PSP表格

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

解题思路

1 . 用正则表达式将电话号码提取出来
2 . 将号码加入指定位置
3 . cpca分离(将地址按省,市,区,街道等逐次解析)

本次作业的代码(具体想法代码中已用注释给出)

#_*_ coding:utf-8 _*_
import re 
import cpca
import json

#fp = open("/root/MyScript/address.txt", "r")
fp = input("请输入你的信息:")
#with fp as object:
#    contents = object.read()
t = re.compile(r"\d{11}",re.M|re.S)
mobiles = re.findall(t,fp)
#fp.close()
print(mobiles)  

#fp = open("/root/MyScript/address.txt", "r")
#fp = input("请输入你的信息:")

lines = []
#for line in fp.readlines():
#    line = line.strip('\n')
#    if line:
lines.append(fp)  # 逐行将文本存入列表lines中
#fp.close()

        #删除手机号码
pros = []
for i in range(len(lines)) :
    dd = lines[i]
    ss = mobiles[i]
    pro = dd.replace(ss,'')  
    pros.append(pro)        
    print(pros)

    #添加正确格式的手机号码
infos = []
for i in range(len(lines)) :
    info = pros[i].replace(",",","+mobiles[i]+",")
    infos.append(info)

    #一维数组化成二维数组
    
ads = []    #存储地址信息
for i in range(len(infos)) :
    pp = infos[i]
    infos[i] = pp.split(',')
    ad = infos[i][2]
    ads.append(ad)  

    #格式化地址信息
tt = (cpca.transform(ads)).values




dic = []    #存储全部信息的二维数组
format = ["姓名","手机","地址"]
for i in range(len(infos)) :
    dic.append(dict(zip(format,infos[i])))
    dic[i].update(地址 = tt[i].tolist()) #tolist(),否则不解析  
    obj = json.dumps(dic,ensure_ascii=False)
print(obj)

部分测试案例




性能分析

暂无

代码不足

水平有限,其实还有蛮多种情况没考虑到

心路历程与收获

可能是第一次接触这么难的题(对我来说),很多不会,还好有朋友有百度,但尽管如此打出来的代码也还有挺多不足,有些情况依旧会出bug,后面会努力学习改进,总之明白了一件事,该学的还很多。

你可能感兴趣的:(第一次个人编程作业)