我需要一些帮助。我不知道为什么类型错误,列表索引必须是整数,而不是str。我试图获取isbn的第一个字符并将其乘以10,将第二个字符乘以9,依此类推。在完成之后,我需要找出总数是11的倍数。
isbn = ['0439202116']
count = 10
x = 0
for x in isbn:
total = isbn[x] * count
count -= 1
x += 1
if (total % 11 == 0):
print(True)
else:
print(False)
答案 0 :(得分:0)
您正在尝试迭代组合数字字符串的列表 - 它只会为您提供索引0处的项目。任何给定项目的索引字符串,列表等以字符串的顺序表示它的位置,从0开始。 indices 然后引用多个索引。 将您的初始字符串更改为包含ISBN的所有数字的元组,并且它可以正常工作。
isbn = (0,4,3,9,2,0,2,1,1,6)
count = 10
x = 0
for x in isbn:
total = isbn[x] * count
count -= 1
x += 1
if (total % 11 == 0):
print(True)
else:
print(False)
这给了我一个输出:
True
False
False
False
False
True
False
False
False
False