python 校验身份证号
时间: 2023-11-06 13:00:12 浏览: 90
以下是一个python函数,可以用于校验身份证号是否合法:
```python
def validate_id_card(id_card):
"""
校验身份证号是否合法
"""
# 加权因子表
weight_factors = [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']
# 身份证号码长度
id_card_length = len(id_card)
if id_card_length == 18:
# 18位身份证号码校验
# 计算校验位
total = 0
for i in range(17):
total += int(id_card[i]) * weight_factors[i]
check_code = check_codes[total % 11]
# 比较校验位
if id_card[-1] == check_code:
return True
else:
return False
elif id_card_length == 15:
# 15位身份证号码校验
return True
else:
# 身份证号码长度不正确
return False
```
使用方法:
```python
id_card = '身份证号码'
if validate_id_card(id_card):
print('身份证号码合法')
else:
print('身份证号码不合法')
```
阅读全文