列表索引必须是整数,而不是str,什么是索引?如何迭代字符串?

时间:2015-11-23 19:06:46

标签: python list indices

我需要一些帮助。我不知道为什么类型错误,列表索引必须是整数,而不是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)

1 个答案:

答案 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