用python输入身份证号输出生日
时间: 2024-10-10 15:09:13 浏览: 119
在Python中,你可以使用正则表达式库re来验证身份证号码,并从中提取出生日期。中国的身份证号码是由18位数字组成,前6位代表地市代码、接下来8位代表出生年月日。下面是一个简单的例子:
```python
import re
def get_birth_date(id_number):
# 正则表达式匹配中国身份证号码
pattern = r"^\d{17}(\d|x|X)$"
if not re.match(pattern, id_number): # 验证是否是有效的身份证号
return "无效的身份证号"
# 根据规则分割并转换为日期字符串
birth_info = id_number[6:14]
day = int(birth_info[4:6])
month = int(birth_info[:2]) - 1 # 注意月份从0开始计数
year = int(birth_info[-2:]) + 1900 # 加上1900年
return f"{year}-{month:02d}-{day:02d}" # 返回格式化的出生日期
# 示例使用
id_number = input("请输入身份证号:")
birth_date = get_birth_date(id_number)
print(f"出生日期:{birth_date}")
```
相关问题
python输入身份证号输出出生年月
在Python中,如果要输入身份证号并输出出生年月,我们可以编写一个简单的程序来实现这一功能。中国的第二代身份证号码共有18位,其中第7到14位代表出生年月日,格式为YYYYMMDD。
以下是一个简单的Python代码示例:
```python
def extract_birthday(id_number):
if len(id_number) == 18:
birthday = id_number[6:14] # 提取身份证号中第7到第14位作为生日部分
year = birthday[0:4] # 提取年份
month = birthday[4:6] # 提取月份
day = birthday[6:8] # 提取日期
return year, month, day
else:
return None, None, None # 如果身份证号码长度不是18位,则返回None
# 用户输入身份证号码
id_number = input("请输入18位身份证号码:")
# 调用函数并输出出生年月日
year, month, day = extract_birthday(id_number)
if year and month and day:
print(f"出生年月为:{year}年{month}月")
else:
print("输入的身份证号码无效,请确保是18位的身份证号码。")
```
运行这段代码后,程序会提示用户输入身份证号码,然后解析并输出相应的出生年月。如果输入的身份证号码不是18位,程序会输出错误信息。
用Python实现输入身份证号后输出对应生日
可以使用Python中的datetime模块来实现这个功能。具体代码如下:
```python
import datetime
def get_birthday(id_num):
birth_year = int(id_num[6:10])
birth_month = int(id_num[10:12])
birth_day = int(id_num[12:14])
birthday = datetime.date(birth_year, birth_month, birth_day)
return birthday.strftime('%Y-%m-%d')
id_num = input('请输入身份证号码:')
birthday = get_birthday(id_num)
print('出生日期为:', birthday)
```
这个代码会先从身份证号码中提取出出生年月日,然后使用datetime.date函数创建一个日期对象,最后使用strftime函数将日期格式化为字符串输出。
阅读全文