python判断真假身份证号

识别一串身份证是否是真实的身份证号码:
公民身份号码是特征组合码,共18位,由17位数字本体码和1位数字校验码组成。 排列顺序从左至右依次为:
6位数字地址码,8位数字出生日期码,3位数字顺序码和1位数字校验码。
作为尾号的校验码,是由号码编制单位按统一的公式计算出来的。
身份证第18位(校验码)的计算方法:
1、将前面的身份证号码17位数分别乘以不同的系数。
从第一位到第十七位的系数分别为: [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]。
2、将身份证前17位数字和系数相乘的结果相加。
3、用加出来的和除以11,看余数是多少?
4、余数只可能有[0,1,2,3,4,5,6,7,8,9,10]这11个数字。
其分别对应的最后一位身份证的号码为 [1,0,X,9,8,7,6,5,4,3,2]。
5、通过上面得知如果余数是2,就会在身份证的第18位数字上出现罗马数字的Ⅹ。如果余数是10,身份证的最后一位号码是2。

实验身份证号:‘110000198003198182’ / ‘440204199406184727’

实现代码:

思路:

1、判断位数是否是18位
2、截取前17位和最后1位
3、计算除以11之后的余数是多少
def check_function(id_num):if len(id_num) == 18:# 获取前17位和最后一位num17 = id_num[:17]num_last = id_num[-1]# 将前17位分别乘以不同的系数,系数是固定的moduls = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]# 将前17位的字符转换成int类型num17 = map(int, num17)# 将两个列表的对应数据进行打包num_tuple = zip(num17, moduls)# 对应位置乘积num = map(lambda x:x[0]*x[1],num_tuple)# 求和,取余数mod = sum(num)%11print("余数是:",mod)# 根据结果与最后一位进行判断,last_list是所有的余数last_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]# 最后一位身份证的号码为num_last_list = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2]# 以字典(键值对)形式展现last_dict = dict(zip(last_list, num_last_list))print("身份证最后一位键值对:",last_dict)#用余数与最后一位作比较,num_last是str,所以last_dict[mod]要做转换if str(last_dict[mod]) == num_last:return Trueelse:return Falseelse:return False
check_function('440204199406184727')

根据身份证号查询归属地、出生日期等信息

输入身份证号码查询号主归属地,出生日期,性别,生肖
(身份证号码第十五位到十七位)地址码所标识的区域范围内
对同年、月、日出生的人员编定的顺序号
其中第十七位奇数分给男性,偶数分给女性
前两位代表的是省 三位和四位代表的市

实现代码:

思路:
1、首先需要导入归属地信息
2、对归属地信息格式做改变
3、实现所需功能
def id_infoCheck(id_num):# 处理文本(每一行变成字典中键值对)#导入文件with open('F:./area.txt', 'r', encoding='utf-8') as f:codelist = f.readlines()# print(codelist)#split()去除空格list1 = [i.split() for i in codelist]# 二维的列表转化成字典code_dict = dict(list1)# 获取地区six_num = id_num[:6]# 前六位代表 县print("旗县:",code_dict[six_num])#前两位代表 省two_num = id_num[:2] + '0000'print("省区:",code_dict[two_num])#前四位代表 市four_num = id_num[:4] + '00'print("市:",code_dict[four_num])#出生日期birth=id_num[6:14]print("出生日期是:",birth)sex_num=int(id_num[14:17])if sex_num%2==0:print("性别是:",'女')else:print("性别是:",'男')#生肖animal_dict={0:'猴',1:'鸡',2:'狗',3:'猪',4:'鼠',5:'牛',6:'虎',7:'兔',8:'龙',9:'蛇',10:'马',11:'羊'}year=int(birth[0:4])print("生肖是:",animal_dict[year%12])id_infoCheck('440204199406184727')

Python 实现验证身份证号真假以及查询归属地、出生年月等信息相关推荐

  1. python之验证身份证号合法性的库:id_validator

    上个星期,大佬分享了一个验证身份证号合法性的库:id_validator,没空去试着用一下看看,今天有点时间,来试着用下这个库. 1.首先,要安装这个库,windows+R键运行cmd,打开命令行窗口 ...

  2. python身份证号掩盖出生日期的代码_利用Python制作全国身份证号验证及查询系统!就问你吊不吊!...

    大家好哇,又是一个愉快的周末,今天本鸟给大家分享1个有趣的实战项目,用python制作"全国身份证号验证及查询系统",成品界面如下图: 本系统可以实现身份证号真伪验证,年龄.性别及 ...

  3. 超级牛逼,用python制作全国身份证号验证及查询系统

    前言 本系统可以实现身份证号真伪验证,年龄.性别及发证地查询,看起来是不是很高大上,其实做起来不是很复杂,涉及知识主要有python字符串处理.表格读写和Gui制作,适合有一定python基础的朋友练 ...

  4. python身份证验证系统_利用Python制作全国身份证号验证及查询系统!就问你吊不吊!...

    大家好哇,又是一个愉快的周末,今天本鸟给大家分享1个有趣的实战项目,用python制作"全国身份证号验证及查询系统",成品界面如下图: 本系统可以实现身份证号真伪验证,年龄.性别及 ...

  5. 用python制作全国身份证号验证及查询系统

    ​ 大家好哇,又是一个愉快的周末,今天本鸟给大家分享1个有趣的实战项目,用python制作"全国身份证号验证及查询系统",成品界面如下图: 本系统可以实现身份证号真伪验证,年龄.性 ...

  6. 【趣味案例】用python制作全国身份证号验证及查询系统

    今天给大家分享1个有趣的实战项目,用python制作"全国身份证号验证及查询系统",成品界面如下图: 本系统可以实现身份证号真伪验证,年龄.性别及发证地查询,看起来是不是很高大上, ...

  7. 用python判断身份证号性别_验证身份证号的Python脚本

    引用 a[0], a[1], a[2], a[3], ..., a[16], a[17] 其中a[i]表示第i位数字,i=0,1,2,...,17,如果最后一位(校验位)是X,则a[17]=10 每一 ...

  8. python判断身份证是否合法的函数_Python开发之身份证验证库id_validator验证身份证号合法性及根据身...

    上个星期,大佬分享了一个验证身份证号合法性的库:id_validator,没空去试着用一下看看,今天有点时间,来试着用下这个库. 1.首先,要安装这个库,windows+R键运行cmd,打开命令行窗口 ...

  9. Java验证身份证号是否合法

    身份证作为居民的唯一标识.在很多系统中需要用户输入身份证号信息,今天我们就来编写一个方法验证身份证号的合法性. 首先我们来看看身份证号的编码规则: 前1-2位数字表示:所在省(直辖市.自治区)的代码: ...

最新文章

  1. python3.6 messagebox_Python Tkinter GUI编程入门介绍
  2. 可执行文件启动器(下)
  3. hdu 1026 bfs+记录路径
  4. 第二章 java常用开发工具以及程序的编写
  5. 安装java过程_Java的安装过程
  6. 亲自实践Blazor构建桌面应用程序
  7. 利用旧手机自建anki服务器,废旧手机变身服务器,打造私人云盘
  8. burpsuite小米手机抓包_使用burpsuite实现Android APP的HTTPS抓包
  9. 下载的长数据怎么分开R语言_TCGA数据库单基因gsea作业之COAD-READ
  10. ImportError: libjpeg.so.62: cannot open shared object file: No such file or directory
  11. MyBatis配置文件出现错误,已解决(The content of element type )
  12. 并发编程的那些事。(一)
  13. 【社交分享SDK】ShareSDK for Android 2.5.9已经公布
  14. Dxg——Raspberry Pi Pico python 开发笔记整理分类合集【所有的相关记录,都整理在此】
  15. python和tableau优缺点_matplotlib和Tableau之间哪一个最好?
  16. lenovo L480 进入bios_联想笔记本BIOS升级教程
  17. 服务器的显示器无信号怎么解决办法,显示器无信号怎么办?显示器无信号解决办法大全...
  18. Bn层之前的卷积层不需要加偏执
  19. javascript--经典实例锦集
  20. iOS StoryBoard自适应布局

热门文章

  1. shell从文件中根据key获取value
  2. 小程序快速获取openid
  3. samle-install.nsi.bat
  4. 怎样查看已分好区的硬盘的分配单元大小
  5. 博阅电纸书_博阅7.8寸电纸书安卓系统,超高性价比让kindle望而生畏
  6. quartus2安装和使用的坑
  7. 草图大师 SketchUp Pro 2019 19.1.173 Mac 中文特别版设计工具
  8. 微信小程序解析富文本的方法
  9. 电力预测原始数据随机森林缺失值处理
  10. word 导出 不带endnote 参考文献格式的论文