这是脚本:
num = 3
if not (num == 2 and num == 3):
print('es 3')
我希望"打印"不会与"和"一起运行
这不是真的
代码打印es 3
是完全正常的,但是我意识到通常很难理解为什么,所以我将在这里分解代码:
我们应该检查的第一件事是num == 2
和num == 3
.显然,num == 3
将返回True
,num == 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