Python 根据身份证号计算生日,年龄和性别

(没有考虑身份证输入错误的情况,也没有将年龄的计算精确到月数...会再尝试一下滴)

生日

切片

切片是从字符串中取出某个区间的字符,采用str[start:end:step]形式

start

切片开始的位置的元素符号

end

切片结束的位置的元素符号

step

取值的步长(默认为1,可以负,但不能为0)

  1. 切片范围是一个左闭右开的区间,取出的数据不包括str[end]位置的数据

  1. 如果切片从字符串的开头处开始:str[:end]

  1. 如果切片到字符串的末尾处结束: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岁
性别:男

你可能感兴趣的:(Python作业记录,python,开发语言)