此脚本:
num = 3
if not (num == 2 and num == 3):
print('es 3')
答案 0 :(得分:2)
代码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