python身份证号码验证真伪
时间: 2023-06-13 21:08:47 浏览: 138
可以使用Python正则表达式来验证身份证号码的真伪。以下是一个简单的示例:
```python
import re
def validate_id_number(id_number):
# 身份证号码正则表达式
pattern = re.compile(r'^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}[0-9Xx]$')
# 判断是否符合规则
if pattern.match(id_number):
# 计算校验码
factors = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
checksum = sum([int(id_number[i]) * factors[i] for i in range(17)])
codes = '10X98765432'
if codes[checksum % 11] == id_number[-1].upper():
return True
return False
# 测试身份证号码
id_number = '44030819990101001X'
if validate_id_number(id_number):
print('身份证号码有效')
else:
print('身份证号码无效')
```
该代码中,首先使用正则表达式验证身份证号码是否符合规则,然后计算校验码并与身份证号码最后一位进行比对,以判断身份证号码是否有效。
阅读全文