该回答引用chatgpt:参考一下这个
import re
def validate_id_number(id_number):
# 校验身份证号码的长度和格式
pattern = re.compile(r'^\d{17}[\dXx]$')
if not re.match(pattern, id_number):
return False
# 校验身份证号码的前17位数字
factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
checksum = 0
for i in range(17):
checksum += int(id_number[i]) * factor[i]
# 校验身份证号码的校验位
checksum %= 11
check_digit = '10X98765432'[checksum]
if id_number[-1].upper() != check_digit:
return False
return True
# 测试身份证号码校验
id_number = input("请输入身份证号码:")
if validate_id_number(id_number):
print("身份证号码校验通过")
else:
print("身份证号码校验不通过")
a[i]是字符啊,怎么乘法呢
你找个例子自己看下吧
https://blog.csdn.net/qq_52030824/article/details/126784418
a[i]
改为
int(a[i])
还有,return不要写到if里面