身份校验码python计算公式
时间: 2023-05-25 07:04:14 浏览: 125
python 计算身份证校验码
对于身份证号码而言,校验码的计算过程如下:
1. 将身份证号码前17位存放在一维数组中,分别乘以对应的权值(权值从左到右依次为:7、9、10、5、8、4、2、1、6、3、7、9、10、5、8、4、2),其中以第17位为奇数的性质来确定最后一位可采用系统给定的校验码,以保证计算的正确性。
2. 将乘积求和,得到sum。
3. sum除以11,得到余数为r。
4. 根据余数r来对应一个校验码(校验码列表为:1、0、X、9、8、7、6、5、4、3、2)。
5. 如果第17位与上一步计算得到的校验码相同,则说明身份证号码有效。
下面是Python代码实现:
```
def check_id(id_num):
weights = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]
check_codes = ['1','0','X','9','8','7','6','5','4','3','2']
multi_sum = sum([int(id_num[i])*weights[i] for i in range(17)])
remainder = multi_sum % 11
if id_num[-1] == check_codes[remainder]:
return True
else:
return False
```
阅读全文