本篇内容介绍了“用python怎么计算出身份证号码”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
车票中暴露的身份证号码为:3302211993****4914,只缺少月份日期四位。那么也就是365种可能,因为1993年不是闰年,只有365天。
那我们就先用python生成1993年的所有日期:
import time#生成出生当年所有日期def dateRange(year):fmt = '%Y-%m-%d'bgn = int(time.mktime(time.strptime(year+'-01-01', fmt)))end = int(time.mktime(time.strptime(year+'-12-31', fmt)))list_date = [time.strftime(fmt, time.localtime(i))for i in range(bgn, end+1, 3600*24)]return [i.replace('-', '') for i in list_date]data_time = dateRange('1993')
['19930101', '19930102', '19930103',···'19931229', '19931230', '19931231']
然后再校验由这些日期构成的身份证号码的有效性。校验身份证号码的有效性不需要自己写代码,这里推荐一个已经封装好的库id-validator。
安装:
pip install id-validator
利用id-validator来依次校验刚才生成的身份证号码:
from id_validator import validatorimport time#生成出生当年所有日期def dateRange(year):fmt = '%Y-%m-%d'bgn = int(time.mktime(time.strptime(year+'-01-01', fmt)))end = int(time.mktime(time.strptime(year+'-12-31', fmt)))list_date = [time.strftime(fmt, time.localtime(i))for i in range(bgn, end+1, 3600*24)]return [i.replace('-', '') for i in list_date]#遍历所有日期,print通过校验的身份证号码def vali_dator(id1, id2, id3):for i in dateRange(id2):theid = id1 + i + id3if validator.is_valid(theid):print(theid)vali_dator('330221','1993','4914')
筛选出了34种结果:
330221199301064914330221199301144914···330221199312134914330221199312214914
“用python怎么计算出身份证号码”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。