温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

用python怎么计算出身份证号码

发布时间:2021-11-23 11:38:47 来源:亿速云 阅读:253 作者:iii 栏目:大数据

本篇内容介绍了“用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怎么计算出身份证号码”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI