为什么“和”排除其中包含0的任何对(x,y),而不仅仅是排除两个均为0的对(x,y)?

时间:2019-03-22 05:22:06

标签: python python-3.x

我有一个看起来像这样的python 3代码:

for x in range(-1,2): 
    for y in range(-1,2):
        if x != 0 and y != 0:
            print("True")

输出看起来像这样:

True
True
True
True

应该输出8个"True"。当(0,0)x都等于y时,对于不是0的每个排列之一。为什么输出4呢?

通过将"print("True")"替换为"print(x,y)"输出来进行进一步调查:

-1,-1
1,-1
-1,1
1,1

0到哪里去了?

1 个答案:

答案 0 :(得分:3)

您应该使用“或”

for x in range(-1,2):
    for y in range(-1,2):
        if x != 0 or y != 0:
            print(x, y)
            print("True")