如果不是,则不能与两个或三个“和”一起使用

时间:2018-09-15 22:09:55

标签: python-3.x

此脚本:

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

我希望“打印”不会运行,因为“和”

这不是真的

1 个答案:

答案 0 :(得分:2)

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

我们首先要检查的是num == 2num == 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