python身份证验证代码
时间: 2023-10-14 22:27:17 浏览: 99
以下是一个简单的 Python 身份证验证代码示例:
```python
def validate_id_number(id_number):
# 判断身份证号长度是否为18位
if len(id_number) != 18:
return False
# 判断身份证号前17位是否为数字
if not id_number[0:17].isdigit():
return False
# 判断身份证号最后一位是否为数字或X
if not (id_number[-1].isdigit() or id_number[-1] == 'X'):
return False
# 判断身份证号的前两位是否正确
province_code = int(id_number[0:2])
if province_code < 11 or province_code > 91:
return False
# 判断身份证号的校验码是否正确
factors = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1]
check_code = '10X98765432'
weight_sum = sum([int(id_number[i]) * factors[i] for i in range(17)])
check_index = weight_sum % 11
if id_number[-1] != check_code[check_index]:
return False
# 身份证号验证通过
return True
```
使用示例:
```python
id_number = '110101199003075012'
if validate_id_number(id_number):
print(f'{id_number} 是一个有效的身份证号')
else:
print(f'{id_number} 不是一个有效的身份证号')
```
输出:
```
110101199003075012 是一个有效的身份证号
```
阅读全文