Python判断身份证是否合法

利用正则表达式实现对身份证合法程度的判断

 1 # !usr/bin/env python3
 2 # coding:utf-8
 3 """
 4 @ Copyright (c)2020,高铁学院学生
 5 @ All rightsreserved
 6 @ Author: LingluSenior
 7 @ Blog(个人学习网): xlcybk.github.io
 8 @ WeChat Official Account(微信公众号): LingluSenior
 9 
10 @ File: idcard_legal.py
11 @ Time: 2020/5/28 10:48
12 
13 @Motto: 不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
14 """
15 import re
16 while(True):
17    id_card = input("请输入身份证号码:")
18    key = "^[1-9]{2}\d{4}(18|19|20)\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$"
19    brea = re.match(key,id_card)
20    if brea != None :
21        print(brea.group())
22        print("你的身份证号码为:" + brea.group())
23        year = int(id_card[6:10])  # 截取年份
24        month = int(id_card[10:12])  # 截取月份
25        day = int(id_card[12:14])  # 截取日期
26        sex = int(id_card[16])  #截取性别奇数为男反之为女
27        print("你的出生年日期为:%s" % year, month, day)
28        if sex % 2 == 0:
29            print("该身份证号码的持证人为女性")
30        else:
31            print("该身份证号码的持证人为男性")
32 
33        print("=" * 30)
34        break
35    else :
36        print("匹配失败,请重新输入")

 

posted @ 2020-07-06 09:32  刘浩(LingluSenior)  阅读(2206)  评论(0)    收藏  举报