Python实现地区查询功能
地区查询
类型:文件
描述
附件文件中包含全国各地区的地区编码,对应身份证的前6位。身份证的前2位代表省名,在文件中可能存在身份证前2位数字后面加4个0的编码,代表省、自治区或直辖市;身份证号前4位代码地区名,在文件中可能存在身份证前4个数字后面加2个0的编码,表示市或地区。省和地区这两个编码也有可能不存在。输入身份证号前6位,查询到该编码对应的省、市、县(区)。某一项查询不到时,返回并输出空字符串。
输入格式
输入身份证号前6位
输出格式
参考示例分三行输出省、市、县(区)
示例 1
输入:
110113
输出:
北京
顺义区
示例 2
输入:
421221
输出:
湖北
咸宁市
嘉鱼县
参考代码
def file_to_dict(area_file):
"""接收一个表示文件名的字符串为参数,将文件中的数据保存到字典中,返回字典。"""
area_in_dict = {}
with open(area_file, '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 = '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])
作者:m0_62488776