Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python“;等于;及;不等于;_Python_Operators - Fatal编程技术网

Python“;等于;及;不等于;

Python“;等于;及;不等于;,python,operators,Python,Operators,我在做一个练习题,不知道我做错了什么。似乎我对或应该如何工作有些困惑 我将传递13-19之间的一系列数字: for i in range(13,20): func(i) 职能1 结果1 因此,如果n等于15或n等于16,则通过。还有什么,就定为0。有道理 职能2 结果2 如果n不等于15或16,则将其设为0。否则,请通过。同样,这是有道理的 这是我有点不舒服的地方: 职能3 结果3 我认为结果是由于n两个条件都需要满足;如果15和16都相等,则通过,否则为零。我明白了 职能4 结果4

我在做一个练习题,不知道我做错了什么。似乎我对
应该如何工作有些困惑

我将传递13-19之间的一系列数字:

for i in range(13,20):
    func(i)
职能1

结果1

因此,如果n等于15或
n
等于16,则通过。还有什么,就定为0。有道理

职能2

结果2

如果
n
不等于15或16,则将其设为0。否则,请通过。同样,这是有道理的

这是我有点不舒服的地方:

职能3

结果3

我认为结果是由于
n
两个条件都需要满足;如果15和16都相等,则通过,否则为零。我明白了

职能4

结果4

如果
n
不等于15或
n
不等于16,则应为零

我认为这意味着
的工作原理相同,因为这两个条件都必须满足,但我想知道是否有更有知识的人可以解释?

这基本上是德摩根定律

~(a和b)=(~a或~b)。

每个数字(包括15和16)都通过此测试,因此结果将始终为
True
。请记住,对于要计算为
True
语句,只有一个条件需要为
True
。每个数字要么不等于15,要么不等于16


我认为这意味着或者说某种程度上,这两个条件都必须满足,但我想知道是否有更有知识的人可以解释


通常情况并非如此。您已经编写了一个特例,的行为类似于。(参见Maged关于DeMorgan定律的回答)

“如果一个值是15,同时也是16”-你给我看通过这个测试的值,我会给你看一台坏了的计算机。与“如果值不是15或不是16”的相反方向相同-它不能同时是这两个值,所以ooo…对于函数3,永远不会出现数字同时是15和16的情况。对于函数4,您只需要满足两个条件之一:数字不是15或数字不是16。每个数字都满足这个条件,因为每个数字不是15就是16。@deceze“结果是由于n的两个条件都需要满足;如果15和16都相等,则通过,否则为零。我知道了。”-我知道了。“每个数字要么不等于15,要么不等于16”,这就清楚地说明了发生了什么。谢谢
def func(n):
    if n == 15 or n == 16:
        pass
    else:
        n = 0
0
0
15
16
0
0
0
def func(n):
    if n != 15 and n != 16:
        n = 0
    else:
        pass
0
0
15
16
0
0
0
def func(n):
    if n == 15 and n == 16:
        pass
    else:
        n = 0
0
0
0
0
0
0
0
def func(n):
    if n != 15 or n != 16:
        n = 0
    else:
        pass
0
0
0
0
0
0
0
if n != 15 or n != 16: