这是一个用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 &