我试过,但是不知道哪里错了

自己试了但是有部分不对,但不知道哪错了,有什么方法解决这个吗?

img

img

这个问题我回答过?

 def is_valid_id_number(id_number):
    factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
    parity = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']
    if len(id_number) != 18:
        return False
    if not id_number[:-1].isdigit():
        return False
    if id_number[-1] not in parity:
        return False
    sum = 0
    for i in range(17):
        sum += int(id_number[i]) * factor[i]
    check = parity[sum % 11]
    return check == id_number[-1]
 
n = int(input())
count = 0
for i in range(n):
    id_number = input()
    if is_valid_id_number(id_number):
        count += 1
print(count)
 
 


n = int(input())
count = 0
for i in range(n):
    id_number = input()
    if len(id_number) == 18:
        # 在这里添加身份证号码验证代码
        count += 1
print(count)

模板,因为不知道你要怎么验证