python身份证号码共18位_用Python写一个身份证号码校验工具

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

一、总体介绍

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

项目演示

项目整体效果

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

二、认识身份证号码

身份证号码的构成如下:

身份证号码的构成

(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位的数字。

校验方法:

图解身份证号码最后一位校验码的计算过程

文字详细描述

三、实现界面类:IDCheckGUI

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

from tkinter import *from tkinter.ttk import *import osclass IDCheckGUI(Tk):    def __init__(self):        super().__init__()        self.title('身份证信息校验系统')        self.geometry('800x510 400 200')        self.resizable(0,0)        self['bg'] = 'whitesmoke'        self.setup_UI()    def setup_UI(self):        self.style01 = Style()        self.style01.configure('input.TLabel',font=('微软雅黑',20,'bold'))        self.style01.configure('TLabel',font=('微软雅黑',20,'bold'),foreground = 'navy')        self.style01.configure('TButton',font=('微软雅黑',20,'bold'),background = 'lightblue')        # 图片        self.Login_image = PhotoImage(file = '.' os.sep 'img' os.sep &

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值