用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怎么计算出身份证号码
转载来于:http://scjbc.cn/article/jeeoed.html

其他资讯