查找邮编并匹配

查询邮政编码

问题描述,输入一个编码,判断该编码是否有效,如果有效将该编码与邮编列表文件进行比较。

import re  # 正则模块

# 将邮编文件读如到当前文件下
file = open("youbian.txt","r",encoding="utf-8")
content = file.readlines()
# print(content)
'''
'\ufeff[100000,"北京市"],\n', '[110100,"北京市市辖区"],\n'
     列表中的数据 有些同学可能跟我这边出现一样的情况 就是第一条左边多出一个隐藏字符
     处理情况 可以将这一条单独设置即可
     其他的数据 要是想提取出来列表的话 需要去除掉字符串右端的 ,\n 符号
'''
# 由于第一条的数据会出现\ufeff,所以单独取出来
con_first = [100000,"北京市"]
res = []
# 遍历原列表
for i in range(1, len(content)): # 因为索引0位置数据已定,所以从1开始
	# 先去除数据两端非列表的数据
    temp = content[i].rstrip(",\n")
    # 将字符串temp转换成列表
    data = list(eval(temp))
    res.append(data)
# 将第一个元素添加到
res.append(con_first)
list01 = sorted(res,key=lambda x:x[0])

num_you = input("请输入一个邮编:")

# 书写正则规则
rules = re.compile(r"[1-6][0-9]{5}")
if re.fullmatch(rules,num_you):
    count = 0
    for i in list01:
        count += 1
        if i[0] == int(num_you):
            print("邮政编码:{},城市:{}".format(*i))
            break
    if count == len(list01):
        print("没有此邮政编码!")
    # print(res)
else:
    print("邮编格式错误!")

file.close()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值