我的for循环不会重复正确的条件

时间:2017-01-30 16:52:54

标签: python

我的代码有什么问题吗?它应该运行大约500次。但是,一旦它再次追加,直到下一个elif条件得到满足后它会追加。

for x in range(lengthOfListedContent):

    if listed_content[x][0] is books[0]:
        notes[0].append(listed_content[x][2])
        print(x)
    elif listed_content[x][0] is books[1]:
        notes[1].append(listed_content[x][2])
        print(x)
    elif listed_content[x][0] is books[2]:
        notes[2].append(listed_content[x][2])
        print(x)
    elif listed_content[x][0] is books[3]:
        notes[3].append(listed_content[x][2])
        print(x)
    else:
       print('fail')

这是我得到的输出:

0
1
fail
fail
5
fail
fail
fail
9
fail
fail

它应该在每次迭代时附加,但它只会在满足条件的第一次迭代时附加。我不知道为什么它只是跳过直到满足下一个elif条件。我已经盯着屏幕看了几个小时。

很抱歉,如果这一切都令人费解,我还是新的..

1 个答案:

答案 0 :(得分:2)

在两个参数之间使用是比较它们的ID而不是它们的值。

is测试身份,而不是平等

is的所有行更改为==

自:

if listed_content[x][0] is books[0]:

要:

if listed_content[x][0] == books[0]: