编写程序,从键盘输入一个用户的18位身份证号码,从中提取出生日期并输出。
时间: 2024-10-14 13:04:24 浏览: 41
在Python中,可以使用正则表达式库`re`来匹配和提取身份证号码中的出生日期。身份证号码的第7到14位代表出生年月日。下面是一个简单的示例:
```python
import re
def extract_birth_date(id_number):
pattern = r"(^\d{15}$)|(\d{17}(?:\d|X|x))" # 匹配15位和18位身份证号码
match = re.match(pattern, id_number)
if match and len(match.group()) == 18: # 确保是18位身份证
birth_date = f"{id_number[6:14]}-{id_number[14:16]}-{id_number[16]}"
return birth_date
else:
print("输入的不是有效的18位身份证号码.")
return None
# 获取用户输入
user_input = input("请输入您的18位身份证号码:")
result = extract_birth_date(user_input)
if result:
print(f"出生日期:{result}")
else:
print("无法提取出生日期.")
相关问题
编写程序,从键盘输入一个用户的18位身份证号码,从中提取出生日期并输出
在编写程序时,可以从用户输入的18位中国居民身份证号码中提取出生日期,通常身份证号码的第7到14位代表出生年月日信息。下面是一个简单的Python示例:
```python
def extract_birth_date(id_number):
# 校验身份证号码是否合法
if not (len(id_number) == 18 and id_number.isdigit()):
print("输入的身份证号码不合法")
return
birth_date = id_number[6:14] # 提取出生日期部分
format_str = '%Y%m%d' # 出生日期格式
try:
born_on = datetime.datetime.strptime(birth_date, format_str)
print(f"出生日期:{born_on.strftime('%Y-%m-%d')}")
except ValueError:
print("出生日期无法识别,请检查输入的身份证号码")
# 获取用户输入
id_number = input("请输入您的18位身份证号码:")
extract_birth_date(id_number)
```
在这个程序中,我们首先检查输入的有效性,然后通过字符串切片获取出生日期,并尝试转换为datetime对象。如果转换成功,我们会按照'YYYY-MM-DD'的格式输出。
编写程序,从键盘输入一个用户的18位身份证号码,从中提取出生日期并输出python
代码如下:
```python
id_num = input("请输入18位身份证号码:")
birth_date = id_num[6:14] # 从第7位到第14位是出生日期,共8位
year = birth_date[0:4] # 前4位是年份
month = birth_date[4:6] # 中间2位是月份
day = birth_date[6:8] # 后2位是日期
print("出生日期为:{}年{}月{}日".format(year, month, day))
```
输入身份证号码后,代码会从中提取出生日期,并以"XXXX年XX月XX日"的格式输出。其中,年份、月份、日期分别从身份证号码中的固定位置提取。
阅读全文