身份证类
一、身份证号处理
输入一个合法的身份证号码,计算输出出生年月日、性别、年龄(不要求校验输入的合法性)

第一种方法:
#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('身份证校验位错误!')

浙公网安备 33010602011771号