用python怎么计算出身份证号码
本篇内容介绍了“用python怎么计算出身份证号码”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
滨江网站建设公司成都创新互联,滨江网站设计制作,有大型网站制作公司丰富经验。已为滨江1000+提供企业网站建设服务。企业网站搭建\外贸营销网站建设要多少钱,请找那个售后服务好的滨江做网站的公司定做!
分析
车票中暴露的身份证号码为: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怎么计算出身份证号码”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!
新闻名称:用python怎么计算出身份证号码
链接URL:http://azwzsj.com/article/jeeoed.html