当前位置: 首页 > java >正文

python两行数据相加_用python制作全国身份证号验证及查询系统

8ec3f3c7a81e90531a97fda6e72a968a.png

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

d8c3d3a7197482f87dc490b146f513cc.png

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

5ef85806eeb5657c09ce4233e914df92.png 第一步:身份证号解析 6320662f6c4938637ad9c100a97d443e.png 身份证号一般由18位号码组成,前6位为地址码,第7至14位为出生日期码,第15至17位为顺序码,第18位为校验码。6位地址码为编码对象户口所在县(市、区)的行政区划代码;8位出生日期码为出生年月日;3位顺序码为县(市、区)所辖派出所的分配码,顺序码的奇数分配给男性,偶数分配给女性;1位校验码是按统一公式计算出来的。 5ef85806eeb5657c09ce4233e914df92.png 第二步:归类整理地址码与区县对应关系 这个网上比较常见,随便搜索1个身份证号都会返回所在的区县地址,我们要做的是把所有的对应关系都找到,恰巧网上已经有现成的了,不过要稍加整理,大家可以去网上找一下,但是要擦亮眼睛啊,有一个版本是错的,实在找不到的可以联系我,我已经整理好存入表格中 563f7f5da3ae4ada6a2d75bcb6f2ca1d.png 5ef85806eeb5657c09ce4233e914df92.png 第三步:验证身份证号真伪 身份证最后一位校验码算法如下:
①将身份证号码前17位数分别乘以不同的系数,从第1位到第17位的系数分别为:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
②将得到的17个乘积相加。
③将相加后的和除以11并得到余数。
④余数可能为0 1 2 3 4 5 6 7 8 9 10这些个数字,其对应的身份证最后一位校验码为1 0 X 9 8 7 6 5 4 3 2。
代码实现如下: 5701149e422ac92b97a97c2592b1f046.png 57a1b3dfc8796d7116f27559cbf7b572.png 5ef85806eeb5657c09ce4233e914df92.png 第四步:查询地区 规则参考第一步,python两行代码就搞定了5701149e422ac92b97a97c2592b1f046.png 75b55b2b04ea1fdf92d924a2ca5862db.png 不得不说,python就是简单方便 5ef85806eeb5657c09ce4233e914df92.png 第五步:计算出年龄及性别 规则同样参考第一步,代码如下:5701149e422ac92b97a97c2592b1f046.png 72f00cdfd29e831cfa334e20acaaf265.png 到此为止,项目的主体功能已经实现,下面要想办法用GUI界面实现。 5ef85806eeb5657c09ce4233e914df92.png 第六步:制作GUI界面 本步骤主要用PyQt5实现,下面我把核心代码贴出来: 首先是以网格方式对标签及文本框进行布局,并用setStyleSheet对文本框进行修饰 21d8bd7b76d9fbe39c6d54e9546085e7.png 然后是设置查询按钮并布局,再与check函数(信号)绑定 871e4ae43b0ccebd6b693b42874be8f2.png 接着是在check函数中将查询到的结果在文本框中显示出来 6bfc5ee2f39e65e5ea8c97898265b128.png 5701149e422ac92b97a97c2592b1f046.png最后设置主窗口图片背景 1d212aa4c5da7067e651c0631b89e0e6.png 到此为止,本项目就大功告成了,你学会了吗? 但是要声明一下,本文所介绍的查询功能均为正向查询,即在已知身份证号的前提下,解析原则来源于网络,不敢保证100%准确,更不能反向推算出个人身份证号,所以不涉及侵犯隐私问题。 本文所涉及的代码、表格已经上传,请在公号后台输入“身份证”获取。

如果你觉得文章还不错,请大家点赞分享下。你的肯定是我最大的鼓励和支持。

f045db1f372240d1696293c71e143c8d.png

老表Pro已经满了

所以大家加老表Max吧

每日留言

说说你最近遇到的一个编程问题?

或者新学的一个小技巧?

(字数不少于15字)

76b145ebc172657425dc27dcd817641d.png

完整Python基础知识要点

Python小知识 | 这些技能你不会?(一) Python小知识 | 这些技能你不会?(二) Python小知识 | 这些技能你不会?(三) Python小知识 | 这些技能你不会?(四)

近期推荐阅读:

【1】整理了我开始分享学习笔记到现在超过250篇优质文章,涵盖数据分析、爬虫、机器学习等方面,别再说不知道该从哪开始,实战哪里找了 【2】【终篇】Pandas中文官方文档:基础用法6(含1-5) 觉得不错就点一下“在看”吧  0f51e362970a9e6c070f529e1a94e14f.gif
http://www.xdnf.cn/news/11687.html

相关文章:

  • MMC/SD/eMMC/SDIO介绍
  • 卡巴斯基6.0.1.411正式版-简体中文傻瓜安装版(安装无需任何设置,且自动激活)...
  • 飘云QQ宣布终止后续开发 称不懂游戏规则玩不起
  • 电脑操作系统有哪些?一文了解全部!
  • InstallShield错误:由于添加自动卸载的快捷方式使得无法正确安装和卸载的问题
  • 如何发布一篇博客?(入门保姆级)
  • Dr.COM宽带认证客户端网络环境使用路由器上网
  • C语言从放弃到入门,C语言,从放弃到入门
  • 网站集成支付宝
  • Android HTTP客户端:实现HTTPS访问方式
  • Flash Builder4破解步骤
  • 財智V6.0(完美破解序列号特别版)
  • Fedora 12 13 14基础环境配置
  • as3.0 初学者完整教程
  • Qt 显示透明flash和编写QtWebkit插件
  • 使用QAbstractTableModel来自定义表格模型,并在QTableView中显示数据
  • Mac上好用的视频播放器有哪些?
  • 华硕k5555l拆解图解_华硕k50id的拆机过程详解【图文教程】
  • 推荐:Notepad Next —— 开源文本编辑新选择
  • MyEclipse6.5 注册码
  • 7za 命令说明
  • java环境变量 的配置与详解(全网最详细教程)
  • C# 用定时器(Timer) 定时执行程序
  • 云中岳系列小说评论(序)
  • 火炬之光无限启动报错:qtwebkit4.dll 缺失的完美解决攻略
  • 农信社最常见的5个面试问题
  • 【牛腩】发布 牛腩新闻发布系统
  • FastReport 4 介绍(Dephi)
  • nutch从搜索引擎到网络爬虫
  • python2.7下,使用pycharm更新pip后,命令框还是老版本的pip