在Python中,我们可以通过身份证号码来计算一个人的年龄。身份证号码通常包含18位,其中第7位到第14位是出生年月日。以下是一个简单的Python函数,用于从身份证号码中提取年龄。
def calculate_age(id_number):
# 验证身份证号码长度
if len(id_number) != 18:
return "身份证号码长度不正确。"
# 提取出生年月日
year = int(id_number[6:10])
month = int(id_number[10:12])
day = int(id_number[12:14])
# 获取当前年月日
from datetime import datetime
today = datetime.today()
# 计算年龄
age = today.year - year - ((today.month, today.day) < (month, day))
return age
# 示例
id_number_example = "11010519491231002X"
age = calculate_age(id_number_example)
print(f"身份证号码:{id_number_example} 的年龄是:{age}岁")
函数解析
- 输入验证:首先检查输入的身份证号码长度是否为18位,如果不是,则返回错误信息。
- 提取出生年月日:从身份证号码中提取出生的年、月、日。
- 获取当前日期:使用Python的
datetime模块获取当前的年、月、日。 - 计算年龄:通过比较出生日期和当前日期,计算年龄。如果今天的月份和日期还未达到出生月份和日期,说明还未过生日,所以年龄应减一。
使用方法
- 将身份证号码作为字符串传入
calculate_age函数。 - 函数会返回计算出的年龄。
- 示例中,我们提供了一个身份证号码示例,并打印了对应的年龄。
这个函数可以帮助你在需要时快速地根据身份证号码获取一个人的年龄。需要注意的是,由于身份证号码中的日期只精确到月和日,所以计算出的年龄可能存在一天左右的误差。
