# 身份证 识别出生年月日 性别 年份限制为1900-2024 月份限制为1-12 日限制为1-30 闰月不做处理都按三十天
while True:
a = input("请输入身份证:")
A = len(a) == 18 # 检查输入内容是否为18位
B = a[0:17].isdigit() # 检查是否为纯数字
C = a.endswith('X') # 检查最后一位是否为X
D = a.endswith('x')
E = a[17:18].isdigit()
Nian = a[6:10] # 出生年份
Yue = a[10:12] # 出生月份
Ri = a[12:14] # 日
if A and B and (C == True or D == True or E == True): # 判断输入内容是否为18位,前17位是数字,最后一位是否是X
# if C!='X':
Nian = int(Nian)
if 2024 >= Nian >= 1900: # 判断年份是否超限
Yue = int(Yue)
if 1 <= Yue <= 12: # 判断月份是否超限
Ri = int(Ri)
if 1 <= Ri <= 30: # 判断日期是否超限
print('你的出生年份是:{}年,你的出生月份是:{}月,你的出生日期是:{}日'.format(Nian, Yue, Ri))
print('出生日期为:', Nian, '年', Yue, '月', Ri, '日')
e = a[16]
e = int(e)
if e % 2 == 0: # 判断性别
print('性别:女')
elif e % 2 == 1:
print('性别:男')
else:
print('超出日期')
else:
print('超出月份')
else:
print('超出年份期')
else:
print('身份证号码输入有误')