任务:编程编程语言python功能验证身份证号码是否合规。如果合规则输出:验证通过如果不合规则输出:请再次输入若连续三次输入错误则不能再次尝试
以下是一个简单的实现,可以用于验证身份证号码是否合规:
def validate_id_number(id_number):
# 判断身份证号码长度是否正确
if len(id_number) != 18:
return False
# 判断身份证号码前17位是否都是数字
if not id_number[:17].isdigit():
return False
# 判断身份证号码最后一位是否正确
last_digit = id_number[-1]
weights = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
check_codes = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']
check_sum = sum(int(id_number[i]) * weights[i] for i in range(17))
if check_codes[check_sum % 11] != last_digit.upper():
return False
return True
# 测试
tries = 0
while tries < 3:
id_number = input("请输入身份证号码:")
if validate_id_number(id_number):
print("验证通过")
break
else:
print("请再次输入")
tries += 1
else:
print("连续三次输入错误,不能再次尝试")
该程序首先定义了一个函数 validate_id_number,用于验证身份证号码是否合规。具体实现方式如下:
- 判断身份证号码长度是否正确,如果不是18位,则返回
False。 - 判断身份证号码前17位是否都是数字,如果不是,则返回
False。 - 计算身份证号码最后一位的校验码,如果与实际校验码不匹配,则返回
False。 - 如果前三个判断条件都通过了,则说明身份证号码合规,返回
True。
在主程序中,使用一个循环来反复输入身份证号码,并调用 validate_id_number 函数进行验证。如果验证通过,则输出 验证通过 并结束循环。如果验证不通过,则输出 请再次输入,并将尝试次数加1。如果连续三次输入都验证不通过,则输出 连续三次输入错误,不能再次尝试。
原文地址: https://www.cveoy.top/t/topic/b0Uh 著作权归作者所有。请勿转载和采集!