Python判断身份证是否输入正确
2023-09-27 14:23:05 时间
简介
从1999年10月1日起,全国实行公民身份证号码制度,居民身份证编号由原15位升至18位:
- 前6位为地址码;
- 第7位至14位为出生日期码,其中年份用4位数表示;
- 第15位至17位为顺序码;
- 第18位为校验码,主要是为了校验计算机输入公民身份证号码的前17位数字是否正确,其取值范围是0至10,当值等于10时,用罗马数字符
X
表示。
校验码的计算方法
- 将前面的身份证号码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这11个数字。其分别对应的最后一位身份证的号码为1-0-X-9-8-7-6-5-4-3-2。
- 通过上面得知如果余数是2,就会在身份证的第18位数字上出现罗马数字的Ⅹ。如果余数是10,身份证的最后一位号码就是2。
代码实现
lis = list(input('请输入身份证号码:'))
ten = ['X', 'x', 'Ⅹ']
ID = ["10" if x in ten else x for x in lis] #将罗马数字Ⅹ和字母X替换为10
W = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
Checkcode = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2]
sum = 0
for i in range(17): #https://blog.zeruns.tech
sum = sum + int(ID[i]) * W[i]
if Checkcode[sum % 11] == int(ID[17]):
print('输入正确')
else:
print('输入错误')
相关文章
- python通过标准输入读取内容,读取键盘输入的内容?接收用户输入?
- Python函数传入的参数是否改变(函数参数、指针、引用)
- Python 读取 .mdb文件信息
- python flask 快速搭建 WEB 实战
- python pip 安装模块包命令
- Python到底牛在哪?现在就业薪资高吗?
- Python 元组,字典,集合
- python读取并写入csv文件
- 输入一个字符串,打印出该字符串中字符的所有排列-python
- 《贝叶斯思维:统计建模的Python学习法》一导读
- 《Python密码学编程》——2.8 使用在线比较工具检查输入的代码
- Python基础必掌握的读取输入和写入输出方法
- OpenCV Python – 如何将彩色图像转换为二进制图像?
- Python GUI教程之使用 Python 构建 Excel 数据输入应用程序(教程含源码)
- 《从问题到程序:用Python学编程和计算》——2.7 判断和条件控制
- Python的输入与输出
- Windows10 cmd输入python打开的是应用商店
- Python基础之:Python中的IO
- Python正式迁移到GitHub
- python:rs, ws, es = select.select(inputs, [], []) --报错error 10022
- Python 爬虫 之 爬取百度贴吧内容的封装、输入贴吧主题即可对应爬取
- Python测试代理ip是否有效
- Python f-string字符串格式化的介绍
- 【Python】读取.env文件实现文件配置隔离保障私有数据安全
- [Jenkins]基于Jenkins的Python+pytets+allure接口自动化测试环境搭建
- 借助python中的sympy,实现latx公式的简便输入
- Python实现温度转换