python简单验证身份证号的正确性和年龄
我这里只写了长度和是不是数字或者数字加X的情况
还有身份证的年月日是否正确。
如果想要完整验证的还是需要正则表达式。
import os
import datetime
import math
ID= input("请输入身份证号:")
def IDcheck(strID):
try:
if len(strID)==18:
dt = (datetime.datetime.now() - datetime.datetime.strptime(strID[6:14], '%Y%m%d')).days/365
dt = math.floor(dt)#向下取整
if strID.isdigit() or (strID[0:16].isdigit() and strID[17]=="X") and dt > 0 :
print("身份证号正常")
print("年龄为:",dt)
else:
print("身份证号不是数字或者出生日期错误")
else:
print("身份证号长度有误")
except:
print("越杰")
IDcheck(ID)