前言
例如:某女性的身份证号码是220202202002020022。我们要看看这个身份证是不是合法的身份证。 首先我们得出前17位的乘积和是98,然后用98除以11得出其余数是10。最后通过对应规则就可以知道余数10对应的数字是2。所以,可以判定这是一个合格的身份证号码。
lis = list(input('请输入身份证号码:'))
ten = ['X', 'x', 'Ⅹ']
ID = ["10" if x in ten else x for x in lis] #将罗马数字Ⅹ和字母X替换为10
W = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
Checkcode = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2]
sum = 0
for i in range(17): #https://blog.zeruns.tech
sum = sum + int(ID[i]) * W[i]
if Checkcode[sum % 11] == int(ID[17]):
print('输入正确')
else:
print('输入错误')