文件校验工具(校验和校验的区别)

这是一个用Python开发的GUI实战项目:居民身份证信息校验系统本项目使用Tkinter作为GUI模块,充分利用Py

  这是一个用Python开发的GUI实战项目:居民身份证信息校验系统

  本项目使用Tkinter作为GUI模块,充分利用Python面向对象的思想,开发一款实现身份证号码校验的应用程序。具备解析用户输入的身份证号码中的地区信息、出生日期、以及身份证号码是否合法等功能。是练习Python面向对象思想、tkinter GUI模块的优质练手项目。

  用Python写一个身份证号码校验工具文件校验工具(校验和校验的区别)

  项目整体效果

  以上,如果我们输入一个正确的身份证号码,系统可以正常解析;但是篡改其中一位的话,校验结果直接显示无效;如果少输入一位的话,系统会提示“请输入18位”。

  用Python写一个身份证号码校验工具文件校验工具(校验和校验的区别)

  身份证号码的构成

  (1)地区码:身份证前6位就是地区码,中国每一个地区都对应一个地区码,按照GB/T2260执行。通常1开头为华北地区、2开头为东北地区、3开头为华东地区、4开头为华中地区和华南地区、5开头为西南地区、6开头为西北地区、7和8开头为特别地区。

  (2)出生日期码:表示编码对象出生的年、月、日,按GB/T7408的规定执行,年月日代码之间不用分隔符。

  (3)顺序码:表示在同一地址码所标识的区域范围内,对同年同月同日出生的人编订的顺序号,顺序码的奇数分配给男性、偶数分配给女性。

  (4)校验码:身份证第18位是校验码,对前17位做一个运算,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码得到第18位的数字。

  校验方法:用Python写一个身份证号码校验工具文件校验工具(校验和校验的区别)

  图解身份证号码最后一位校验码的计算过程用Python写一个身份证号码校验工具文件校验工具(校验和校验的区别)

  文字详细描述

  在工程项目中新建一个idcheckgui.py的文件用来生成GUI界面

  由于我们使用面向对象的思想开发,我们把主函数放在另一个文件中startcheck.py中,在startcheck模块下导入我们实现GUI的模块idcheckgui

  用Python写一个身份证号码校验工具文件校验工具(校验和校验的区别)

  GUI界面搭建

  现在我们只是搭建了GUI界面,并没有真正的进行校验操作。

  (1) 对身份证号码进行切片 首先我们把获取到的身份证号码分成地区码、生日码、顺序码、校验码,四个部分,存储在列表id_list[]中。

  通过get_id_list方法对身份证号码字符串进行切片:

  (2)根据前17位计算校验码 获取身份证号码的前17位存储在number中,然后对17位数字分别乘以系数[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2],累加得出结果后对11进行取余,将获得的结果作为索引取出列表[“1″,”0″,”x”,”9″,”8″,”7″,”6″,”5″,”4″,”3″,”2″]中的值即为校验码。

  (3) 将计算出的校验码与身份证最后一位比较,我们提前在构造函数设置静态属性self.is_true_id_number = 0,如果校验码核对成功,便将其值设为1

  我们规定出生日期必须介于1900-01-01到当前的日期,只要时间在这个区间内就算有效,超过这个范围就算无效。

  校验身份证号码中的地区码是否合法,我们主要需要完成两步操作:

  由于地区码与地区名的对应关系我们存储在一个id_area.txt的文件中用Python写一个身份证号码校验工具文件校验工具(校验和校验的区别)

  身份证号码前6位与其对应的行政区域

  我们可以通过读取文件中每一行的数据,使用逗号作为分隔符生成一个列表,再将该列表添加到area_list列表中。

  我们定义一个validate_area_id的方法,将从输入的身份证号码中的地区码与area_list中的地区码进行比对,从而获取对应的地区名

  我们可以直接根据身份证号码的第三部分判断其奇偶数来确定性别,id_list列表的第三部分存储的是顺序码,将顺序码先转为整型然后对2取余。如果等于0说明是偶数,即女性;如果等于1说明是奇数,即男性。

  我们在id_checkgui模块中,定义一个get_info函数用于对输入的身份证号码进行校验。 我们需要导入前面写的idcheck模块,使用该模块下的IdCheck类构造一个检验对象check_id,传入的参数为本模块GUI中输入框获取到的值。

  校验逻辑为:用Python写一个身份证号码校验工具文件校验工具(校验和校验的区别)

  身份证校验的逻辑

  最后再将GUI模块中的校验按钮添加command参数其值设置为get_info即可。

  用Python写一个身份证号码校验工具文件校验工具(校验和校验的区别)

  身份证号码位数不足时

  用Python写一个身份证号码校验工具文件校验工具(校验和校验的区别)

  最后一位身份证号码故意输错时

  用Python写一个身份证号码校验工具文件校验工具(校验和校验的区别)

  正确输入身份证号码的情况

  本项目利用Tkinter开发了一个身份证号码校验系统,能够识别用户输入的身份证号码的有效性,并且解析身份证号码的地区、出生日期、性别等有效信息,感兴趣的小伙伴可以私信我获取全套的源码、素材、及数据源,一起上手练习一下。

  小伙伴们,如果觉得文章还不错的话,希望能点个赞;如果觉得很有用的话那就转发一下;如果觉得这个作者很棒那就关注一下,你们的支持是我更新最大的动力!

原创文章,作者:发布专员,如若转载,请注明出处:https://ziliaobaba.com/14203.html

(0)
发布专员发布专员
上一篇 2022年1月12日 02:16
下一篇 2022年1月12日 03:03

相关推荐

  • 12万左右的车排行榜前十名轿车(12万左右的车型)

    第一款车广汽传祺影豹:这款车是一款非常年轻轻的车型,整个造型设计也非常漂亮,在上个月拿下7106台的销售量官方指导价9.83-12.8w售价区间,还有一款限量版车型已经卖完。它的次顶配J16版本车型还需要加价3K,落地…

    2022年11月13日
  • it网络(互联网IT)

    IT高管专注于满足客户期望 39%的IT高管将不断变化的客户期望和行为作为他们面临的最大外部挑战之一,表明在CIO中新客户的中心地位日益提高。 大型企业的IT主管尤其意识到在新时代开展业务所带来的挑战,并将其视为最…

    投稿 2022年10月22日
  • 英雄联盟蜘蛛女皇出什么装备?蜘蛛女皇出装

    为什么现在蜘蛛这版本没有任何加强,但却会成为OP打野?           跟主流热门打野有很大关系,可以看到图上蜘蛛在对阵这类主流打野英雄时,胜率都是优势,而前期强势的优点对于这版本控龙…

    2022年10月26日
  • 10元店加盟需要多少钱

    如果想在这样一个竞争激烈的奶茶产业取得不错的成绩,就需加盟一个强劲的奶茶品牌来保驾护航。一鸣真鲜奶是实力奶茶品牌之一,一鸣真鲜奶品牌向来是餐饮投资界的热门话题。一鸣真鲜奶加盟费多少钱?10万-25万加盟无忧开店!一鸣真鲜奶加盟费多少钱?平均花费在10万到25万元之间。然而,由

    2022年1月4日
  • 三孩购房支持政策(三州成都购房政策)

    近期,多地密集出台“三孩”相关政策。11月29日,又有广东、天津加入修改计划生育条例大军。广东明确一对夫妻可以生育三个子女,将全面

    投稿 2022年1月6日
  • 手机关机行程码会显示去过的地方吗

    手机关机行程码会显示去过的地方吗? 一、什么是行程码 行程码是一种科技,它可以记录一个人的旅行路线,记录他们去过的地方,以及他们在那里做了什么。它可以帮助人们跟踪他们的旅行,并记录他们的旅行经历。 二、…

    投稿 2023年8月1日
  • 福寿螺图片(福寿螺图片)

    你知道吗?有一种螺,曾身为北京的三大美食之一,出现在人们餐桌,备受人们的追捧。但它也因美味,给人们的身体造成了极大的损坏,从而受到人们大力抵制,甚至被我国法律禁止,才让它远离人们的餐桌。这种动物便是福寿螺,由于没有太好的制裁手段,所以我国虽采取众多措施,却没能从根本上管制福寿螺的泛滥,使得它每

    2022年1月1日
  • word可以绘制图形吗?在word中如何画图

    word软件自带有word画图的功能,可以方便大家在编辑word文档的时候增加一些图案等。有些网友想了解word怎么画图并标注文字?下面小编就教下大家word画图并标注文字的方法步骤。 工具/原料:系统版本:windows10系统…

    2022年11月17日
  • 妮维雅男士全能控油啫喱(妮维雅男士全能控油啫喱了解)

    数字化商业时代,方兴未艾的新品牌如雨后春笋,来势凶猛;老品牌要想坚守阵地,不被“后浪”拍在沙滩上,源源不断地为品牌注入新鲜活力是

    2022年1月12日
  • 纹身贴怎么用?一次性纹身贴使用

    说到纹身贴,大家都不陌生。因为相比纹身的话,纹身不仅麻烦,还易伤身体,所以纹身贴就很好的解决了这个问题,但是纹身贴你会使用吗?贴不好反而会影响美观度哦,所以今天就跟小编来学学。 首先把身体要做纹身贴的…

    2022年12月3日