请用python写出身份证校验程序
以下是一个用Python编写的身份证校验程序:
def check_id(id_num):
# 检查身份证号码长度是否正确
if len(id_num) != 18:
return False
# 将身份证号码前17位分别乘以对应的系数
# 系数分别为:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
factors = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
total = sum(int(id_num[i]) * factors[i] for i in range(17))
# 通过对应的校验码进行验证
check_code = "10X98765432"
if check_code[total % 11] != id_num[-1]:
return False
return True
# 测试
id_num = input("请输入身份证号码:")
if check_id(id_num):
print("身份证号码校验通过!")
else:
print("身份证号码校验不通过!")
此程序通过验证身份证号码的长度和校验码,来判断身份证号码是否有效。其中,身份证号码的前17位分别乘以对应的系数,再将乘积相加,然后用相加的结果对11取模,最后通过对应的校验码进行验证。如果校验通过,则认为身份证号码是有效的
原文地址: http://www.cveoy.top/t/topic/i0R8 著作权归作者所有。请勿转载和采集!