描述
从键盘获取1个18位的身份证号18位身份证号前17位必须是数字,第18位可以是数字或是大写字母,不足18位或组成不正确的身份证号,输出"输入错误!";输入正确,则输出此人的出生日期、性别、以及今年多少岁(占3位有效位)。
提示:第1、2位数字表示:所在省份的代码;第3、4位数字表示:所在城市的代码;第5、6位数字表示:所在区县的代码;第714位数字表示:出生年(不能超过2022)、月(应为有效月份数)、日(应为有效日期数);第1517位数字为顺序码,表示同一区域内同年同月同日出生的顺序号,其中第17位数字表示性别,奇数表示男性,偶数表示女性;第18位数字是校检码。
输入
输入样例:
37050219020228003X
输出
输出样例:
此人出生日期是1902年02月28日,性别是男,今年120岁
输入样例 1
37050219020228003X
输出样例 1
此人出生日期是1902年02月28日,性别是男,今年120岁
输入样例 2
37050219820228003x
输出样例 2
输入错误!
输入样例 3
123243
输出样例 3
输入错误!
输入样例 4
370502198233280033
输出样例 4
输入错误!
import datetime
s=input('')
l=len(s)
t = s[0:17]
n=0
for i in t:
num = ord(i)
if (48 <= num <= 57):
n=n+1
if l>=18and n==17:
year = s[6:10]
month = s[10:12]
day = s[12:14]
sev = int(s[16])
if sev%2==0:
sex='女'
else:
sex='男'
age=datetime.datetime.now().year-int(year)
print(f"此人出生日期是{year}年{month}月{day}日,性别是{sex},今年{age:3}岁")
else:
print("输入错误!")