用python实现身份证号的解析,输出性别,生日,生肖,星
实现功能:
1、解析生日
2、解析性别
3、解析所在省份
4、解析生肖,星座
代码如下:
ID=input('请输入18位身份证号码:');
if len(ID)==18:
print('您输入的身份证号码是:'+ID);
else:
print('你输入的身份证号码错误,请重新输入:');
ID=input('请输入18位身份证号码:');
ID_add=ID[0:2] #省份,截出前两位 2个数
ID_birth=ID[6:14] #8个数
ID_sex=ID[16:17] #1个数
#print(ID_add,ID_birth,ID_sex)
pro={'11':'北京','12':'天津','13':'河北','14':'山西','15':'内蒙',
'21':'辽宁','22':'吉林','23':'黑龙江','31':'上海','32':'江苏',
'33':'浙江','34':'安徽','35':'福建','36':'江西','37':'山东',
'41':'河北','42':'湖北','43':'湖南','44':'广东','45':'广西',
'46':'海南','50':'重庆','51':'四川','52':'贵州','53':'云南',
'54':'西藏','61':'陕西','62':'甘肃','63':'青海','64':'宁夏',
'65':'新疆','71':'台湾','81':'香港'
}
sx='猴鸡狗猪鼠牛虎兔龙蛇马羊'
def getbirth(a): #读取生日,生肖函数
year=a[0:4]
moon=a[4:6]
day=a[6:]
y=int(year)%12
print('您的生日为:'+year+'年'+moon+'月'+day+'日')
print('您的生肖为:',sx[y])
getbirth(ID_birth)
def getsex(a): #读取性别函数
if int(a)%2==0:
print('您的性别为: 女')
else :
print('您的性别为: 男')
getsex(ID_sex)
def getxz(a):
month=int(a[4:6])
day=int(a[6:8])
n = ('摩羯座','水瓶座','双鱼座','白羊座','金牛座','双子座','巨蟹座','狮子座','处女座','天秤座','天蝎座','射手座')
d = ((1,20),(2,19),(3,21),(4,21),(5,21),(6,22),(7,23),(8,23),(9,23),(10,23),(11,23),(12,23))
m=n[len(list(filter(lambda y:y<(month,day),d)))%12]
print('您的星座为:',m)
getxz(ID_birth)
def getpro(key): #读取省份函数
key_list=list(pro.keys())
if key in key_list:
print('您所在的省份为:',pro[key])
else:
print('未查到对应的省份,请核实身份证号码是否正确!')
getpro(ID_add)
by 久违 2019.9.26
```