为什么一直报错呀,是哪里不对啊

img

应该是index out of range,这个是下标超过了字符长度,可以先判断字符串长度。
if len(s) <= 17: 遍历len(s)而不是range(17)了

看题目统一打印:
l = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
d = '10X98765432'
t = int(input(">>>"))
code = {}
for i in range(t):
    s = str(input(">>>"))
    flag = True
    for j in range(17):
        if s[j] not in '0123456789':
            flag = False
            code[s] = False
            break    
    if flag:
        code[s] = True
flag = True
for k, v in code.items():
    if v == False:
        print(k)
        flag = False
        continue
    
    sum = 0
    for j in range(17):
        sum = (sum + int(k[j]) * l[j])
    sum = sum % 11
    
    if d[sum] != k[17]:
        print (k)
        flag = False

if flag:
    print("All Pass")