python输入身份证得生日
时间: 2023-11-24 19:41:55 浏览: 187
要使用Python从身份证号码获取生日,可以通过正则表达式匹配身份证号码,然后提取出生年月日信息。下面是一个示例代码:
```python
import re
regx = '^([1-6][1-9]|50)\d{4}(18|19|20)\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$'
id = input('输入身份证号码:')
while True:
id_result = re.search(regx, id)
if id_result is None:
print('身份证号码不合法!')
id = input('输入身份证号码:')
else:
break
id_no = id_result.group()
year = id_no[6:10]
month = id_no[10:12]
day = id_no[12:14]
print('生日:{}年{}月{}日'.format(year, month, day))
```
请注意,此代码使用正则表达式对身份证号码进行验证,确保其合法性。然后,使用字符串切片操作提取出生年月日信息,并将其打印出来。
相关问题
用python输入身份证号输出生日
在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位,程序会输出错误信息。
阅读全文