python 输入一个18位的身份证号码,输出其中的出生年、月、日。如果身份证号码不足18位,输出“ERROR”。
时间: 2024-10-23 09:20:43 浏览: 25
win7 python3.6 调用百度AI进行 身份证信息 识别
在Python中,我们可以使用正则表达式库`re`来解析中国18位身份证号码,并提取出出生日期信息。下面是一个简单的示例:
```python
import re
def get_birth_date(id_number):
pattern = r"^\d{6}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01])\d{3}$"
match = re.match(pattern, id_number)
if match is None or len(id_number) != 18:
return "ERROR"
birth_year = int(match.group(2)) + 1900
month = int(match.group(3))
day = int(match.group(4))
return f"{birth_year}-{month:02d}-{day:02d}"
# 测试函数
id_num = input("请输入18位的身份证号码:")
print(get_birth_date(id_num))
```
这个函数首先定义了一个正则表达式模式,用于匹配身份证号码的结构。如果输入的身份证号码不符合18位规则或者格式错误,函数将返回"ERROR"。如果匹配成功,就按照顺序提取出生年、月、日并返回。
阅读全文