

一共给了两个文件,第一个用截图发了,还有个查籍贯的发不出来,具体步骤和方法都说一下呗


籍贯的地址信息我这没有 所以就直接输出身份证前6位了,另外身份证正则匹配可以不用 直接删除就好
import re
# 身份证正则匹配
re_id_code=re.compile(r'^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$')
# 身份证校验码
def check_id_code(id_code):
weight = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
check_code = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']
sum = 0
for i in range(len(id_code)):
sum += int(id_code[i]) * weight[i]
return check_code[sum % 11]
while True:
id_code = input('请输入身份证号码:')
if check_id_code(id_code[:17]) == id_code[17]:
print('身份证号码校验成功!')
else:
continue
# 身份证性别
if int(id_code[16]) % 2 == 0:
print('性别:女')
else:
print('性别:男')
# 身份证出生日期
print('生日:{}年{}月{}日'.format(id_code[6:10], id_code[10:12], id_code[12:14]))
# 身份证地址
print('地址:{}'.format(id_code[0:6]))