(没有考虑身份证输入错误的情况,也没有将年龄的计算精确到月数...会再尝试一下滴)
生日
切片
切片是从字符串中取出某个区间的字符,采用str[start:end:step]形式
start | 切片开始的位置的元素符号 |
end | 切片结束的位置的元素符号 |
step | 取值的步长(默认为1,可以负,但不能为0) |
切片范围是一个左闭右开的区间,取出的数据不包括str[end]位置的数据
如果切片从字符串的开头处开始:str[:end]
如果切片到字符串的末尾处结束:str[start:]
代码
#出生日期
id_number = "474587200809125759" #乱编的
year = id_number[6:10]
month = id_number[10:12]
day = id_number[12:14]
result1 = year + "年" + month + "月" + day + "日"
print("出生日期为:"+result1)
年龄
#年龄
import datetime
#导入日期
toyear = datetime.date.today().year
year1 = int(year) #字符串str转换为数字int
age = toyear - year1
print("今年{}岁".format(age))
性别
身份证第17位,单数为男,双数为女
#性别
sex = id_number[16]
sex1 = int(sex)
if sex1 % 2 == 0:
print("性别:女")
else: print("性别:男")
合起来写
import datetime
#导入日期
id_number = "474587200809125759"
year = id_number[6:10]
month = id_number[10:12]
day = id_number[12:14]
result1 = year + "年" + month + "月" + day + "日"
print("出生日期为:"+result1)
#出生日期
toyear = datetime.date.today().year
year1 = int(year) #字符串str转换为数字int
age = toyear - year1
print("今年{}岁".format(age))
#年龄
sex = id_number[16]
sex1 = int(sex)
if sex1 % 2 == 0:
print("性别:女")
else: print("性别:男")
#性别
结果
出生日期为:2008年09月12日
今年15岁
性别:男