Python 中的“非”布尔运算符

布尔运算符从一个或多个输入值生成单个布尔输出值。布尔代数中有三个布尔运算符:ANDORNOTPython 使用andor、 和not来实现它们。我们将在本教程中学习Python的not运算符。


运算

它用于获取值的否定,即它允许我们反转给定布尔表达式的真值。该运算符可以应用于布尔情况,例如 if 语句和 while 循环。它还可以在非布尔设置中发挥作用,使您能够反转变量的真值。

下表显示了对某些输入值应用 not 运算符时的结果。

输入 输出
真的 错误的
错误的 真的

not是一元运算符,这意味着它只接受一个输入值。它可以与任何布尔表达式或 Python 对象一起使用。


not 与不同的数据类型一起使用

not具有不同的数据类型

将 not 与条件语句一起使用

让我们看看 Python 中的 not 运算符如何与我们拥有的不同类型的条件语句一起使用。

if 语句

num = 25
 
if not num%2==0:
    print("num is an odd number")
else:
    print("num is an even number")

输出:

num is an odd number

这里,num%2 即 25%2 等于 1 而不是 0。该if语句检查 num%2==0 是否为 False。由于满足条件,因此输出表明该数字是奇数。如果是偶数,else则满足条件。


while 循环

count = 1
 
while not count>5:
    print(count)
    count = count + 1

输出:

1
2
3
4
5

条件 count>5 检查记录数是否大于 5。while循环执行到count小于 5。一旦count的值变为 6,循环将终止。


Python中非布尔运算符的实现方法

方法 1:使用“not”关键字

var  = False
print(not var)

输出:

True
var = True
print(not var)

输出:

False

以上是在Python中使用not关键字的简单示例。


方法 2:使用“~”运算符

‘~’ 称为否定运算符。

flag = True
 
print("Flag is ", flag)
 
print("Flag is ", bool(~flag))

输出:

Flag is  True
Flag is  False

在此示例中,首先flag将 设定为True并打印其值。flag在下一行中,我们首先通过编写来取反~flag,并且我们已经编写了bool(~flag),因为如果标志最初不是布尔值,那么它将被转换为布尔值。


方法三:使用算子模块

Python中的运算符模块提供了多种方法,例如加法、减法、求幂、左移、右移等。其中之一是not_()它返回提供给它的参数的负值。

import operator
 
initial_list = [False, True, True, False]
print("Initial list:", initial_list)
negated_list = []
 
for i in range(0, len(initial_list)):
    negated_list.append(operator.not_(initial_list[i]))
 
print("Negated list:", negated_list)

输出:

Initial list: [False, True, True, False]
Negated list: [True, False, False, True]

在这里,我们首先导入了操作员模块。然后我们创建了一些布尔值的列表。该循环迭代“initial_list”,并使用运算符not_()模块中的方法对每个值取反,并将其附加到“neated_list”。


方法 4:使用 NumPy 中的 bitwise_not() 方法

Numpy 提供了一种bitwise_not()求负值的方法。它对其参数执行按位 NOT 运算。

import numpy as np
 
print(np.bitwise_not(True))
print(np.bitwise_not(False))

输出:

False
True

上面的代码使用该bitwise_not()方法仅对单个值求反。我们还可以使用 NumPy 元素数组,如下所示。

import numpy as np
a = np.array([True, False, False])
a = np.bitwise_not(a)
print(a)

输出:

[False  True  True]

方法 5:使用 NumPy 中的 invert() 方法

此方法还对传递给它的参数执行按位 NOT 运算。它可以用于单个元素或元素数组。

import numpy as np
 
print(np.invert(False))
print(np.invert(True))

输出:

真的
错误的

另一个例子:

import numpy as np
 
a = [True, False, False]
a = np.invert(a)
print(a)

输出:

[False  True  True]

方法 6:使用 NumPy 中的 Logical_not() 方法

此方法还可用于查找布尔值的负值。就像 bitwise_not() 和 invert() 方法一样,此方法也可以应用于单个参数或参数列表,如下所示。

import numpy as np
 
print(np.logical_not(False))
print(np.logical_not(True))

输出:

True
False

另一个例子:

import numpy as np
 
a = [True, False, True]
a = np.logical_not(a)
print(a)

输出:

[False  True False]

结论

就这样!我们已经了解了not运算符以及在 Python 中使用它的不同方式。