m0_70837191 2022-05-11 19:08 采纳率: 0%
浏览 75
已结题

有没有帅哥美女们帮我看一下,这个查询身份证的python怎么做,真的不会啊。

img

img


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

  • 写回答

4条回答 默认 最新

  • 丨水木旦丨 2022-05-11 19:59
    关注
    获得0.55元问题酬金

    籍贯的地址信息我这没有 所以就直接输出身份证前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]))
    
    评论

报告相同问题?

问题事件

  • 系统已结题 5月19日
  • 创建了问题 5月11日