身份证校验码计算方法
大约 3 分钟python
身份证校验码计算方法
计算方法
- 将身份证号码从左至右标记为 , 则 即为校验码
- 计算权重系数 ;其中 表示求余数。
- 计算
- 则
测试代码
# 0.定义变量含义
W = [] # 权重列表
S = 0 # 权重与每位身份证号的乘积之和
# 1.用户输入18位身份证号
idnum = input("输入18位身份证号:\n")
while len(idnum) != 18:
idnum = input("输入身份证号")
# 2.计算前17位数的权重系数
for i in range(1,18):
W.append(2**(18-i) % 11)
print("权重列表 W = %s" % W)
# 3.计算S,即权重与每位身份证号的乘积之和
for i in range(17):
S += int(idnum[i])*W[i]
print("权重与每位身份证号的乘积之和 S = %d" % S)
# 4.计算a18
a18 = (12-(S%11))%11
if a18 == 10:
a19 = 'X'
print("身份证末位 a18 = %s" % a18)