Python身份证校验
时间: 2024-06-05 10:04:29 浏览: 162
使用python代码进行身份证号校验的实现示例
Python可以使用身份证校验模块来进行身份证号码的合法性验证。身份证号码一般由18位数字组成,前17位为地区和出生年月日信息,最后一位为校验码。根据国家标准,身份证号码的校验规则如下:
1. 前17位每位数字乘以对应的权重(从左至右分别为:7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2),然后相加得到S;
2. 通过S对11取模得到余数M;
3. 通过M与对应的校验码进行对比,如果相等则身份证号码合法,否则不合法。
下面是一个简单的Python函数实现身份证号码的校验:
```
def validate_id_number(id_number):
if len(id_number) != 18:
return False
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']
s = sum(int(id_number[i]) * weights[i] for i in range(17))
m = s % 11
if id_number[-1] == check_codes[m]:
return True
else:
return False
```
使用方式如下:
```
id_number = '110101199003077593'
if validate_id_number(id_number):
print('身份证号码合法')
else:
print('身份证号码不合法')
```
阅读全文