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: