python判断真假身份证号

'''
python判断真假身份证号
识别一串身份证是否是真实的身份证号码: 公民身份号码是特征组合码,共18位,由十七位数字本体码和一位数字校验码组成。 排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。
作为尾号的校验码,是由号码编制单位按统一的公式计算出来的。 身份证第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'
'''
#方法一def func(id):if len(id) == 18:   #校验省份证长度是否是18位num17 = id[0:17]last_num = id[-1]  #截取前17位和最后一位moduls = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]num17 = map(int,num17)num_tuple = zip(num17,moduls)  # [(1, 4), (2, 5), (3, 6)]num = map(lambda x:x[0]*x[1],num_tuple)mod = sum(num)%11yushu1 = [0,1,2,3,4,5,6,7,8,9,10]yushu2 = [1,0,'X',9,8,7,6,5,4,3,2]last_yushu = dict(zip(yushu1,yushu2))if last_num == str(last_yushu[mod]):return Trueelse:return Falseelse:return Falseprint(func('110000198003198182'))
'''
map(f(x),Itera)函数,第一个参数是一个函数,第二个参数是一个可迭代对象
map返回的是一个object,可以用list转换成列表
'''def test(n):return n*n
a = map(test,[1,2,3])
print(list(a))
print(type(a))'''
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同
'''a = [1,2,3]
b = [4,5,6]
c = [7,8]
result1 = zip(a,b)
result2 = zip(a,c)
print(list(result1),type(result1))
print(list(result2),type(result2))
#方法二
def func(id):if len(id) == 18:   #校验省份证长度是否是18位num17 = id[0:17]last_num = id[-1]  #截取前17位和最后一位moduls = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]sum = 0for i in range(0,len(num17)):   #将身份证前17位数字和系数相乘的结果相加 result = int(num17[i])*moduls[i]sum = sum + resultyushu = sum % 11yushu1 = [0,1,2,3,4,5,6,7,8,9,10]yushu2 = [1,0,'X',9,8,7,6,5,4,3,2]dict = {}for i in range(0,len(yushu1)):dict[yushu1[i]] = yushu2[i]if last_num == str(dict[yushu]):return Trueelse:return Falseelse:return Falseprint(func('440204199406184727'))

python判断真假身份证号相关推荐

  1. 利用python识别身份证号后获取年龄和性别信息

    利用python识别身份证号后获取年龄和性别信息 1. 实验目的 利用python识别身份证号后,从身份证号中获取年龄和性别信息 2. 主代码 1. 身份证号码识别 # !/usr/bin/pytho ...

  2. 用python实现身份证号的解析(输出性别,生日,生肖,星座)

    用python实现身份证号的解析,输出性别,生日,生肖,星 实现功能: 1.解析生日 2.解析性别 3.解析所在省份 4.解析生肖,星座 代码如下: ID=input('请输入18位身份证号码:'); ...

  3. 使用 python 进行身份证号校验

    使用 python 代码进行身份证号校验 先说,还有很多可以优化的地方. 1.比如加入15位身份证号的校验,嗯哼,15位的好像没有校验,那就只能提取个出生年月日啥的了. 2.比如判断加入地址数据库,增 ...

  4. 用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 每一 ...

  5. 用Python进行身份证号校验

    在日常应用中,经常需要输入身份证号,因为号码较长容易录错,因此需要进行实时校验,以尽可能保证输入正确.以下以Python为例,浅聊身份证号码校验的方法. 首先我们需要了解身份证号各个号段的意义.身份证 ...

  6. python 检查身份证号的正确性

    python简单验证身份证号的正确性和年龄 我这里只写了长度和是不是数字或者数字加X的情况 还有身份证的年月日是否正确. 如果想要完整验证的还是需要正则表达式. import os import da ...

  7. python读取身份证号_Python实现身份证号码解析

    中国的居民身份证有18位.其中前17位是信息码,最后1位是校验码.每位信息码可以是0-9的数字,而校验码可以是0-9或X,其中X表示10. 身份证校验码算法: 设18位身份证号序列从左到右为: 引用 ...

  8. 利用python实现身份证号验证系统

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

  9. Python根据身份证号计算年龄和退休时间并保存Excel文件

    封面图片:<Python程序设计基础与应用>(ISBN:9787111606178),董付国,机械工业出版社 图书详情: 用书教师可以联系董老师获取教学大纲.课件.源码.教案.考试系统等配 ...

最新文章

  1. Java学习笔记(十一)--类与对象
  2. C#实现的三种方式实现模拟键盘按键
  3. slf4j介绍及配置详解
  4. Vijos 1100 (区间DP)
  5. security 底层原理_spring security 实现remeber me(免登陆功能)的原理
  6. 深入理解alias, alias_method和alias_method_chain
  7. sql连接远程服务器索引超出了_手机怎么连接服务器远程桌面?RD client远程桌面使用教程...
  8. Request介绍及演示样例 PART1
  9. 经典的SharePoint 2010升级中的多核CPU冲突问题
  10. HackerOne 发布《2021年黑客报告》:黑客的动力、发展和未来
  11. GCode软件和资料
  12. 9针串口的RS232、RS485、RS422引脚定义
  13. 什么是弹性(display: flex)布局 ?
  14. shader篇-高光反射模型
  15. u盘UEFI模式安装Windows10和ubuntu18.04双系统
  16. spotify能免费下歌吗_什么是Spotify Duo,它适合您吗?
  17. Vim位置标记mark详解
  18. 【笔记】Linux 文件写入失败,提示文件系统已满
  19. 2021年武威铁路中学高考的成绩查询,武威铁路中学统筹推进2020-2021学年第二学期开学工作纪实...
  20. 2019年计算机网络管理员大赛,【重磅】信息工程学院代表队入围2019年中国高校计算机大赛网络技术挑战赛晋级赛...

热门文章

  1. Java 反射机制快速入门及常见方法全归纳。
  2. DataGrid读写txt文件
  3. [ERDAS] 模型Modeler
  4. java关于继承的代码_java编写动物世界的继承关系代码
  5. (ICASSP 19)Streaming End-to-end Speech Recognition for Mobile Devices
  6. 用Photoshop批量修改图片的分辨率和尺寸大小
  7. 图片渲染 类得修改 图片版本得适配
  8. 大白话讲解设计模式之中介者模式
  9. 【客户机操作系统已禁用 CPU。请关闭或重置虚拟机】以及【该主机 CPU 类型不支持虚拟化性能计数器,模块“VPMC”启动失败,未能启动虚拟机】
  10. wifi 中间人攻击_什么是中间人攻击?该如何防止?