文章目录
前言
一个小程序,用户输入身份证号后判断出生年月日,出生省份以及性别。
适用于18位身份证
一、主要功能
小程序会判断输入的是否位18位并且是否包含除数字以外的其他字符。
输入错误会反馈并且提示重新输入。
每次会提示退出还是继续,通过检测用户输入进行判断
如有错误请各位大佬指正
二、代码
代码如下(示例):
'''
通过身份证判断出生的省份,出生日期以及性别
Author: Nigel Chen
Date: 17/01/2022
'''
# 建立身份证前2位对应省份
# 通过使用字典的key -> value
pro_id = {'11':'北京市','12':'天津市','13':'河北省','14':'山西省','15':'内蒙古自治区','22':'吉林省','23':'黑龙江省',
'31':'上海市','32':'江苏省','33':'浙江省','35':'福建省','36':'江西省','37':'山东省','41':'河南省','42':'湖北省',
'44':'广东省','45':'广西壮族自治区','46':'青海省','50':'重庆市','51':'四川省','53':'云南省','54':'西藏自治区',
'61':'陕西省','62':'甘肃省','63':'青海省','65':'新疆维吾尔自治区','71':'台湾地区','81':'香港','82':'澳门'}
def idget(str):
newstr = ''
if pro_id.get(str):
newstr = pro_id[str]
return newstr
while True:
check = input('输入Q或q退出,输入S或s开始:\n')
if check.lower() == 'q':
break
elif check.lower() == 's':
instr = input('请输入您的身份证号:\n')
# 提取省份、出生年月日以及性别
if instr[:16].isdigit() and len(instr) == 18:
print('你来自:',idget(instr[0:2]))
print('你的生日是:' + instr[6:10] + '年' + instr[10:12] + '月' + instr[12:14] + '日')
gender = '女' if int(instr[16]) % 2 == 0 else '男'
print('你的性别是: '+ gender + '\n')
# 判断输入
else:
print('您输入的长度有误或包含除数字外其他字符,请重新输入\n')
else:
print('您输入有误,请重新输入:\n')