Python编程身份证号合法性
时间: 2024-05-16 14:10:41 浏览: 19
Python 编程身份证号合法性验证可以通过以下步骤实现:
1. 首先,我们需要判断身份证号是否为 18 位,如果不是则不合法;
2. 其次,我们需要判断前 17 位是否为数字,如果不是则不合法;
3. 接着,我们需要对前 17 位进行加权求和,权重分别为 7、9、10、5、8、4、2、1、6、3、7、9、10、5、8、4、2;
4. 然后,我们需要根据加权和的结果计算校验码,校验码的计算方式为:将加权和除以 11 取余数,余数对应的数字为校验码,具体对应关系为:0-1,1-0,2-X,3-9,4-8,5-7,6-6,7-5,8-4,9-3,10-2;
5. 最后,我们需要将身份证号的最后一位与计算出的校验码进行比较,如果一致则说明身份证号合法,否则不合法。
相关问题
python编程身份证号合法性判别
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,则该身份证号不合法。
python判断身份证号日期不合法
可以使用Python的datetime模块来判断身份证号中的日期是否合法,具体实现可以参考以下代码:
```python
import datetime
def is_valid_date(date_str):
try:
datetime.datetime.strptime(date_str, '%Y%m%d')
return True
except ValueError:
return False
id_card = '110101199003075872'
birth_date_str = id_card[6:14]
if is_valid_date(birth_date_str):
print('身份证号中的出生日期合法')
else:
print('身份证号中的出生日期不合法')
```
以上代码中,我们首先定义了一个`is_valid_date`函数,该函数用来判断一个日期字符串是否合法,如果合法则返回True,否则返回False。然后我们从身份证号中提取出出生日期,并调用`is_valid_date`函数来判断其是否合法。如果合法,则输出`身份证号中的出生日期合法`,否则输出`身份证号中的出生日期不合法`。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)