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])

你可能感兴趣的:(python123题库解答,python,开发语言)