创建一个身份证检验广东地级市的并且判断此身份证处于哪个地级市的python输出代码
以下是一个简单的身份证检验和归属地判断的Python代码示例:
import re
# 身份证号码正则表达式
ID_PATTERN = re.compile(r'^[1-9]\d{5}(18|19|20)\d{2}(0\d|1[0-2])([0-2]\d|3[0-1])\d{3}[\dX]$')
# 广东省各地级市区划代码前6位
CITY_CODES = {
'广州市': ['4401', '440103', '440104', '440105', '440106', '440111', '440112', '440113', '440114', '440115', '440117'],
'韶关市': ['4402', '440203', '440204', '440205', '440222', '440224', '440229', '440232', '440233', '440281', '440282'],
'深圳市': ['4403', '440303', '440304', '440305', '440306', '440307', '440308', '440309', '440310', '440311', '440312', '440313'],
'珠海市': ['4404', '440402', '440403', '440404', '440507', '440511', '440512', '440513'],
'汕头市': ['4405', '440507', '440511', '440512', '440513', '440514', '440515', '440523', '440524', '440528', '440982'],
'佛山市': ['4406', '440604', '440605', '440606', '440607', '440608', '440609', '440703', '440704', '440705'],
'江门市': ['4407', '440703', '440704', '440705', '440781', '440783', '440784', '440785'],
'湛江市': ['4408', '440802', '440803', '440804', '440811', '440823', '440825', '440881', '440882', '440883'],
'茂名市': ['4409', '440902', '440904', '440981', '440982', '440983'],
'肇庆市': ['4412', '441202', '441203', '441204', '441223', '441224', '441225', '441226', '441283', '441284'],
'惠州市': ['4413', '441302', '441303', '441322', '441323', '441324', '441381'],
'梅州市': ['4414', '441402', '441403', '441422', '441423', '441424', '441426', '441427', '441481'],
'汕尾市': ['4415', '441502', '441521', '441523', '441581'],
'河源市': ['4416', '441602', '441621', '441622', '441623', '441624', '441625', '441626'],
'阳江市': ['4417', '441702', '441704', '441721', '441781'],
'清远市': ['4418', '441802', '441803', '441821', '441823', '441825', '441826', '441881', '441882'],
'东莞市': ['4419'],
'中山市': ['4420'],
'潮州市': ['4451', '445102', '445103', '445122', '445202', '445203', '445222', '445281'],
'揭阳市': ['4452', '445202', '445203', '445222', '445224', '445281', '445284'],
'云浮市': ['4453', '445302', '445303', '445321', '445322', '445381']
}
def validate_id_card(id_card):
"""
验证身份证号码是否合法
:param id_card: 身份证号码
:return: True或False
"""
if not id_card:
return False
if not ID_PATTERN.match(id_card):
return False
# TODO: 进一步验证身份证号码是否正确
return True
def get_city_from_id_card(id_card):
"""
根据身份证号码获取所属地级市
:param id_card: 身份证号码
:return: 地级市名称或None
"""
if not validate_id_card(id_card):
return None
city_code = id_card[:6]
for city, codes in CITY_CODES.items():
if city_code in codes:
return city
return None
# 测试
id_card = '440106199001011234'
city = get_city_from_id_card(id_card)
print(city) # 广州市
注意,以上代码只是一个简单示例,实际应用中需要根据具体情况进行修改和完善。例如,需要进一步验证身份证号码是否正确、处理不同格式的输入等。
原文地址: https://www.cveoy.top/t/topic/KNY 著作权归作者所有。请勿转载和采集!