逻辑运算符

Python 逻辑运算符可以用来操作任何类型的表达式,不管表达式是不是 bool 类型;同时,逻辑运算的结果也不一定是 bool 类型,它也可以是任意类型。

这点是和C/C++等语言不同的,C/C++语言中逻辑运算符的结果就是bool类型,即true或者false。

下面来一一介绍。

 

1.  not 逻辑非

   结果只有 True 和 False。not可以对符号右侧的值进行非运算

   1)对于布尔值,非运算会对其进行取反操作,True 变 False,False 变 True。

   2)对于非布尔值,非运算会先将其转换为布尔值,然后再取反。

    a. 字符串,有内容为True,空字符串为 False 。

      b. 数字,0 为 False ,其它 为 True 。

print(not 0)   # True
print(not 10)  # False
print(not -1)  # False
print(not '')  # True

 

2. and 逻辑与

   and 可以对符号两侧的表达式进行与运算,它的两侧表达式的计算结果可以是 bool 类型,也可以是数字或者字符串。

   我们将表达式的计算结果为 False、0、'' 等统一描述为假,反之描述为真。and 的返回结果可以是任意类型,由表达式决定。

   Python中的与运算是短路的与,它的逻辑规则如下:

   1)如果左边表达式的值为假,那么就不用计算右边表达式的值了,此时 and 会把左边表达式的值作为最终结果。

   2)如果左边表达式的值为真,那么最终值是不能确定的,and 会继续计算右边表达式的值,并将右边表达式的值作为最终结果。

print(1 and 1.2)     # 1.2
print(False and 10)  # False
print(-1 and 0)      # 0
print('' and "123")  # ''

 

3. or 逻辑或

   or 可以对符号两侧的值进行或运算,与and类似,它的两侧表达式的计算结果可以是 bool 类型,也可以是数字或者字符串。

   我们将表达式的计算结果为 False、0、'' 等统一描述为假,反之描述为真。or 的返回结果可以是任意类型,由表达式决定。

   Python中的或运算是短路的或,它的逻辑规则如下:

   1)如果左边表达式的值为真,那么就不用计算右边表达式的值了,此时 or 会把左边表达式的值作为最终结果。

   2)果左边表达式的值为假,那么最终值是不能确定的,or 会继续计算右边表达式的值,并将右边表达式的值作为最终结果。

print(1 or 1.2)     # 1
print(False or 10)  # 10
print(-1 or 0)      # -1
print('' or "123")  # "123"

  

posted @ 2020-06-26 10:13  _yanghh  阅读(413)  评论(0编辑  收藏  举报