python身份证校验码
时间: 2023-12-21 12:32:01 浏览: 214
身份证校验码是用来验证身份证号码是否有效的一位数字。校验码是通过对身份证号码的前17位数字按照一定的算法进行处理得到的。如果身份证号码最后一位与计算出的校验码不一致,那么该身份证就是无效的。
下面是使用Python实现身份证校验码的示例代码:
```python
def validate_id_card(id_card):
# 将身份证号码的前17位转换为整数列表
id_list = [int(x) for x in id_card[:17]]
# 加权因子
weight_factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
# 校验码对应值
check_code_dict = {
0: '1', 1: '0', 2: 'X', 3: '9', 4: '8', 5: '7', 6: '6', 7: '5', 8: '4', 9: '3', 10: '2'
}
# 计算身份证号码前17位与加权因子的乘积之和
sum = 0
for i in range(17):
sum += id_list[i] * weight_factor[i]
# 取模得到校验码对应的值
check_code = check_code_dict[sum % 11]
# 判断身份证号码的校验码是否正确
if check_code == id_card[17]:
return True
else:
return False
# 调用函数进行身份证校验
id_card = '110101199001011234' # 身份证号码
result = validate_id_card(id_card)
print(result) # 输出:True
```
这段代码中,我们定义了一个`validate_id_card`函数,该函数接收一个身份证号码作为参数,并返回一个布尔值,表示该身份证号码是否有效。函数内部首先将身份证号码的前17位转换为整数列表,然后根据加权因子和校验码对应值的规则计算出校验码,最后判断身份证号码的校验码是否与计算出的校验码一致。
阅读全文