字符串转换为32位_“批量转换15位身份证号为18位”每天编程一小时,每天进步一点点!...

一代的身份证号码为15位,用于显示年份信息为2位,如1980年出生的年份用80表示。这种表示方式出现了一个大的bug,如身份证号码为:110000103254566,这个人到底是1901年出生的,还是2001年出生的,无法从身份证号码上进行判断。另外,同一区域出生的人,可能会出现两张同号的身份证,即2001年与1901年同年、同月、同日的人,可能会出现相同的身份证号。虽然出现概率极低。为避免此类情况,新二代身份证号码改为18位,年份信息为4位,即1980年出生的年份用1980表示。最后一位校验位的算法如下:1.将身份证号码17位数分别乘以不同的系数,系数列为["7","9","10","5","8","4","2","1","6","3","7","9","10","5","8","4","2"]。2. 将这17位数字和系数相乘的结果相加,用加出来和除以11,余数为0、1、2、3、4、5、6、7、8、9、10,其分别对应的最后一位身份证的号码为“10X98765432”。

 编写一个程序,实现将15位身份证号码转为18位(统一增加年份为19)。输出效果如图1 所示。

dcc47cb0-4c1f-eb11-8da9-e4434bdf6706.png

图 身份证号码批量转换

dfc47cb0-4c1f-eb11-8da9-e4434bdf6706.gif 通过学习,你将提升的技能:

技能1int()函数的应用

技能2:序列切片的应用

e1c47cb0-4c1f-eb11-8da9-e4434bdf6706.png

点击左下角“

进入“每天编程一小时”首页

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值