一、身份证号处理
输入一个合法的身份证号码,计算输出出生年月日、性别、年龄(不要求校验输入的合法性)
第一种方法:
#18位身份证号码:第7、8、9、10位为出生年份(四位数),第11、第12位为出生月份,第13、14位代表出生日期, #第17位代表性别,奇数为男,偶数为女。 #datetime.datetime.now().year # datetime.datetiem.now().mouth # datetime.datetiem.now().day import datetime id = input() year = id[6:10] month = id[10:12] day = id[12:14] if int(id[16]) % 2 == 0: sex = '女' if int(id[16]) % 2 == 1: sex = '男' print('你出生于{}年{}月{}日'.format(year,month,day)) print('你今年{}周岁'.format(datetime.datetime.now().year-int(year))) print('你的性别为{}'.format(sex))
第二种方法:
import datetime #导入datetime库,或使用 from datatime import * yearnow = datetime.datetime.now().year #可用于获得当前年份 id1 = input() #输入身份证号 year = id1[6:10] #切片获得年份 mouth = id1[10:12] #切片获得月份 day = id1[12:14] #切片获得天数 gender = id1[16] #切片获得性别数值 if eval(gender)%2 == 0: #整除2求余数,若为0则是偶数-女,反之则为奇数-男 gender="女" else: gender="男" print("你出生于{}年{}月{}日".format(year,mouth,day)) print("你今年{}周岁".format(int(yearnow)-int(year))) #当前年份与出生年份相减的年龄 print("你的性别为{}".format(gender))
二、身份证号验证
输入一个身份证号码,校验其是否是合法的身份证号码
ls = ( 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 ) id = input() sum = 0 for i in range(17): sum = sum + ls[i] * int(id[i]) if str(id[17]) == 'X': if sum % 11 == 2: print('身份证号码校验为合法号码!') else: print('身份证校验位错误!') elif (sum % 11 + int(id[17])) % 11 == 1: print('身份证号码校验为合法号码!') else: print('身份证校验位错误!')
三、校验身份证号码并输出个人信息
输入一个身份证号码,校验其是否是合法的身份证号码,并输出该身份证的出生年月日、性别、年龄
import datetime ls = ( 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 ) id = input() def IDcheck(id): sum = 0 for i in range(17): sum = sum + ls[i] * int(id[i]) if id[17] == 'X': if sum % 11 == 2: return 1 else: return 0 elif (sum % 11 + int(id[17])) % 11 == 1: return 1 else: return 0 if IDcheck(id) == 1: year = id[6:10] month = id[10:12] day = id[12:14] if int(id[16]) % 2 == 0: sex = '女' if int(id[16]) % 2 == 1: sex = '男' print('身份证号码校验为合法号码!') print('出生:{}年{}月{}日'.format(year, month, day)) print('年龄:{}'.format(datetime.datetime.now().year - int(year))) print('性别:{}'.format(sex)) else: print('身份证校验位错误!')