PYTHON地区查询

任务描述

附件文件中包含全国各地区的地区编码,对应身份证的前6位。身份证的前2位代表省名,在文件中可能存在身份证前2位数字后面加4个0的编码,代表省、自治区或直辖市;身份证号前4位代码地区名,在文件中可能存在身份证前4个数字后面加2个0的编码,表示市或地区。省和地区这两个编码也有可能不存在。输入身份证号前6位,查询到该编码对应的省、市、县(区)。某一项查询不到时,返回并输出空字符串。

输入格式‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

输入身份证号前6位

输出格式‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

参考示例分三行输出省、市、县(区)

示例 1‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

输入: 110113 输出: 北京 顺义区

示例 2‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

输入: 421221 输出: 湖北 咸宁市 嘉鱼县 ‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬ 平均代码量 15 行


开始你的任务吧,祝你成功!

def file_to_dict(area_file):

    """接收一个表示文件名的字符串为参数,将文件中的数据保存到字典中,返回字典。"""

    area_in_dict = {}

    with open('IDcode.txt', 'r', encoding='utf-8') as data:  # 读文件

        for x in data:                                    # 遍历文件对象

            ls = x.strip().split(',')                     # 每行数据切分为列表

            area_in_dict[ls[0]] = ls[1]                   # 得到保存地区编码的字典

    return area_in_dict                                   # 返回地区编码字典

def query_area(area_id, area):

    """接收身份证号前6位和编码字典为参数,根据身份证前6位的编码查询所在的省、市、区,以元组形式返回。"""

    province = area.get(area_id[:2] + '0000', '')  # 省、直辖市和自治区

    city = area.get(area_id[:4] + '00', '')        # 市或地区

    area = area.get(area_id)                       # 县或区

    return province, city, area

if __name__ == '__main__':

    areaFile = '8.1 IDcode.txt'

    areaId = input()

    area_dict = file_to_dict(areaFile)       # 调用函数读文件返回地区码字典

    address = query_area(areaId, area_dict)  # 调用函数查询省、市和区

    print(address[0])                        # 输出

    print(address[1])

    print(address[2])

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值