验证身份证号码:

news/2024/11/23 5:55:37/

将18 位身份证的前17 位,对应乘以以下值(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2),
并累加这些乘积为s,将s 对11 求余,结果为0-10,对应的末尾验证码为('1', '0', 'X', '9', '8','7', '6', '5', '4', '3', '2'),利用元组知识,实现用户可循环输入18 位身份证号码,输出身份证号码是否正确,输入“退出”,退出系统。
(1)输出结果格式,身份证号码不正确:
您输入的身份证号是xxxxxxxxx
您的身份证号码不正确,请重新输入
(2)输出结果格式,身份证号码正确:
您输入的身份证号是xxxxxxxxx
先生/女士,您的出生日期是xxxx 年xx 月xx 日(提示:身份证倒数第二位是奇数表示男,为偶数表示女,所以前面提示时,身份证为男的就显示“先生”,身份证为女的就显示为“女士”)
您的身份证号码是一个有效的身份证号码

def mistake():"""输入错误"""print("您输入的身份证号是"+id_number)print("您的身份证号码不正确,请重新输入")test1_tuple = (7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2)  # 身份证号验证权值
test2_tuple = ('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2')  # 求余后末尾验证码
f = 1  # 循环标志
while f:id_number = input("请输入您的身份证号:")index = 0s = 0if id_number == "退出":f = 0  # 退出循环else:if len(id_number) == 18:  # 判断是否18位for i in id_number[:17]:  # 遍历前17位,验证其为数字并计算前17位加权乘积和stry:s = s + int(i) * int(test1_tuple[index])index = index + 1except:passtest = s % 11if id_number[17] == test2_tuple[test]:  # 验证末尾验证码print("您输入的身份证号是"+id_number)if int(id_number[16]) % 2 == 0:print("女士,您的出生日期是"+id_number[6:10]+" 年"+id_number[10:12]+" 月"+id_number[12:14]+" 日")print("您的身份证号码是一个有效的身份证号码")else:print("先生,您的出生日期是"+id_number[6:10]+" 年"+id_number[10:12]+" 月"+id_number[12:14]+" 日")print("您的身份证号码是一个有效的身份证号码")else:mistake()passelse:mistake()


http://www.ppmy.cn/news/503048.html

相关文章

Python验证身份证号码是否有效

判断其是否有效 若不为18位,提示“长度错误”若前17位不为数字,提示“有无效字符”最后一位为校验码,若错误,提示”校验码错误”, 若校验码正确,提示“校验码正确” 校验码产生规则 身份证校验码产生的…

Java验证身份证号

一、需求和算法 需求 使用 Java 中 util 包通过键盘输入身份证号。使用算法校验身份证号是否合法。根据身份证号获取用户出生地。根据身份证号获取用户生日。根据身份证号获取用户性别。打印出生地、生日、性别。 算法 取出身份证号前 17 位与指定系数相乘。系数表如下&#x…

关于验证身份证号码是否为真实有效

以下代码仅供参考 void number(){char buf[] "身份证号码";int per[] {7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};char ver[] "10X98765432";int i,count;printf("\n%d\n",strlen(buf));for(i 0;i < 17;i)count (int)(buf[i]-0)*per[i]; …

PHP 判断身份证号

PHP 检验身份证号可以使用正则表达式来实现。可以在正则表达式中规定身份证号的格式&#xff0c;然后使用 PHP 中的 preg_match 函数来判断输入的字符串是否符合这个格式。如果符合&#xff0c;返回 true&#xff0c;不符合返回 false。 下面是一个简单的例子&#xff0c;可以检…

Java判断身份证号码是否正确

方法如下&#xff1a; public static final int IDENTITYCODE_OLD 15; // 老身份证15位public static final int IDENTITYCODE_NEW 18; // 新身份证18位public static int[] Wi new int[17];/*** 判断身份证号码是否正确。* * param code* 身份证号码。* return …

验证身份证号码,较为完整的,可以验证身份证真伪

下边的方法可以较为完整的验证身份证真伪&#xff0c;可到当前平台验证身份证真伪http://www.ip33.com/shenfenzheng.html checkCode(val) { var p /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/ var factor [7, 9, 10, 5, 8, 4,…

验证身份证号码是否为正确值

今天&#xff08;2018-04-09&#xff09;在整理正则表达时&#xff0c;有一个关于身份证号码的正则匹配。最简单的不动脑子的匹配方式为&#xff1a;^[1-9]\d{16}[\d|x]$&#xff0c;但是这样很容易伪造一个身份证号来骗过电脑&#xff0c;于是加强版的正则匹配为&#xff1a; …

使用JS校验身份证号

1. 中国居民身份证号码编码规则 第一、二位表示省&#xff08;自治区、直辖市、特别行政区&#xff09;&#xff0c;对于地区代码。 第三、四位表示市&#xff08;地级市、自治州、盟及国家直辖市所属市辖区和县的汇总码&#xff09;。其中&#xff0c;01-20&#xff0c;51-70表…