一代的身份证号码为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 所示。
图 身份证号码批量转换
通过学习,你将提升的技能:技 能 提 升 表 | 技能1:int()函数的应用 |
技能2:序列切片的应用 |
点击左下角“”
进入“每天编程一小时”首页