'if not '不适用于两个或三个'and'



这是脚本:

num = 3
if not (num == 2 and num == 3):
print('es 3')

我希望"打印"不会与"和"一起运行

这不是真的

代码打印es 3是完全正常的,但是我意识到通常很难理解为什么,所以我将在这里分解代码:

我们应该检查的第一件事是num == 2num == 3.显然,num == 3将返回Truenum == 2将返回False,因为num被分配了值3

由于一个等式为假,另一个为真,因此and运算符返回 false,因为and只返回True两个参数都为真。

所以(num == 2 and num == 3)是假的

但是not将返回相反的布尔值,因此如果您键入not True,您将获得False,并且not False将返回True

在这种情况下,您键入的内容等效于not False因此它将返回True这意味着if语句将执行并且 Python 将打印es 3

最新更新