python---身份提取信息

身份证提取信息

描述

从键盘获取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("输入错误!")

你可能感兴趣的:(Python练习题,python)