用python实现身份证号的解析(输出性别,生日,生肖,星座)

用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
```






评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

久违 °

小菜鸟就要使劲飞

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值