一个基于Python Tkinter的图形界面应用程序,用于解析中国身份证号码并提取相关信息。
- ✅ 身份证号码验证:支持15位和18位身份证号码格式验证
- ✅ 地区信息解析:根据身份证前6位代码解析所在地区
- ✅ 生日信息提取:提取出生日期并自动计算年龄
- ✅ 性别识别:根据身份证号码识别性别
- ✅ 校验码验证:对18位身份证号码进行校验码验证
- ✅ 用户友好界面:现代化的图形界面设计
- ✅ 错误处理:完善的输入验证和错误提示
- 编程语言:Python 3
- GUI框架:Tkinter (内置Python GUI库)
- 界面组件:ttk (Tkinter主题组件)
- 数据处理:正则表达式、日期时间计算
- Python 3.6 或更高版本
- Windows/Linux/macOS 操作系统
# 直接运行Python文件
python SFZ_GUI.py- 在输入框中输入身份证号码(15位或18位)
- 点击"解析身份证"按钮或按回车键
- 查看右侧文本框中的解析结果
负责身份证号码的核心解析逻辑:
validate_id_card()- 验证身份证号码格式get_area_info()- 获取地区信息get_birthday()- 获取生日信息和年龄get_gender()- 获取性别信息parse_id_card()- 综合解析身份证号码
负责图形界面的构建和交互:
setup_styles()- 配置界面样式create_widgets()- 创建界面组件format_output()- 格式化输出结果parse_id_card()- 处理解析请求clear_all()- 清空输入和结果
程序内置完整的中国行政区划代码数据库,包含:
- 34个省级行政区
- 333个地级行政区
- 2844个县级行政区
采用ISO 7064:1983.MOD 11-2标准:
- 前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']
- 输入框:用于输入身份证号码
- 解析按钮:触发身份证解析
- 清空按钮:清除所有输入和结果
- 退出按钮:关闭应用程序
- 结果显示框:显示格式化解析结果
- 现代化蓝色主题设计
- 响应式布局
- 键盘快捷键支持(回车键解析)
- 滚动条支持长文本显示
程序能够检测和处理以下错误情况:
- 身份证号码长度错误
- 格式不正确(包含非数字字符)
- 校验码错误
- 无效的出生日期
- 未知的地区代码
程序采用模块化设计,易于扩展:
- 添加新的地区代码
- 增加批量处理功能
- 集成数据库存储
- 添加导出功能
本项目采用开源许可证,具体信息请查看LICENSE文件。
欢迎提交Issue和Pull Request来改进这个项目。
如有问题或建议,请通过以下方式联系:
- 提交GitHub Issue
- 发送电子邮件
注意:本程序仅用于学习和研究目的,请遵守相关法律法规,尊重个人隐私。