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岁
性别:男
  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值