Python基础;身份证的秘密

7.通过程序判断并输出相应的信息。

oid=input("请输入身份证号码:")
print("-----------------------")
print("该人的身份信息如下:")
if(oid[0:2]=="43"):
    print("所在省份:湖南")
i=oid[6:14]
print("出生日期:%s"%i)
a=int(oid[-2])
if a%2==0:
    print("性别:女")
else:
    print("性别:男")
print("-----------------------")
b=oid[-8:-4]
nid=oid.replace(b,"****")
print("身份证保密显示如下:",nid)

身份证号码中包含了很多的信息,可以通过身份证号码得到以下信息: 1. 姓名:身份证号码中的第一个字符到第十七个字符表示身份证持有人的姓名,其中最后一位可能是数字或者字母X,表示身份证号码的校验位。 2. 出生日期:身份证号码中的第七个字符到第十四个字符表示身份证持有人的出生日期,格式为年月日。 3. 性别:身份证号码中的第十五个字符表示身份证持有人的性别,奇数表示男性,偶数表示女性。 4. 地址码:身份证号码中的第十七个字符到第十八个字符表示身份证持有人所在的行政区划代码。 5. 校验码:身份证号码中的最后一位是校验码,用于检验身份证号码的有效性。 在Python中,可以通过正则表达式和字符串切片等方式提取身份证号码中的各个信息。例如: ```python import re id_card = '110101199003076677' # 提取姓名 name = id_card[0:6] print('姓名:', name) # 提取出生日期 birthday = id_card[6:14] print('出生日期:', birthday) # 提取性别 gender = int(id_card[16]) if gender % 2 == 0: print('性别:女') else: print('性别:男') # 提取地址码 address_code = id_card[17:19] print('地址码:', address_code) # 校验身份证号码的有效性 pattern = re.compile(r'^\d{17}[\dX]$') if not pattern.match(id_card): print('身份证号码格式错误!') else: # 计算校验码 factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2] check_code = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'] sum = 0 for i in range(17): sum += int(id_card[i]) * factor[i] if check_code[sum % 11] == id_card[17]: print('身份证号码有效!') else: print('身份证号码无效!') ``` 以上代码演示了如何从身份证号码中提取姓名、出生日期、性别和地址码,并校验身份证号码的有效性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值