python编程身份证号合法性判别
时间: 2024-05-15 09:11:13 浏览: 105
核心基础-根据身份证号判断所属省份、生日及性别-Python源码示例.zip
Python编程中可以使用正则表达式来判断身份证号是否合法。以下是一个判断身份证号是否合法的Python代码:
```python
import re
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 re.match(r'[0-9Xx]$', id_number[-1]):
return False
# 计算身份证号前17位的加权和
weight_sum = 0
for i in range(17):
weight_sum += int(id_number[i]) * (2 ** (17 - i))
# 计算校验码
check_code = (12 - (weight_sum % 11)) % 11
if check_code == 10:
check_code = 'X'
# 判断身份证号最后一位是否正确
if str(check_code) != id_number[-1].upper():
return False
return True
```
使用该函数,输入一个身份证号,即可判断其是否合法。如果返回True,则该身份证号合法;如果返回False,则该身份证号不合法。
阅读全文