我们曾学过逻辑运算,今天我们就来学习一下Python中的逻辑运算。先看下图:
逻辑运算符一般来说都是搭配关系运算符一起使用的,例如说:
20>5为True,表达式成立,30.4>90为False ,表达式不成立,所以整个表达式为False不成立。
逻辑运算符的本质
在 Python 中,and 和 or 不一定会计算右边表达式的值,有时候只计算左边表达式的值就能得到最终结果。
另外,and 和 or 运算符会将其中一个表达式的值作为最终结果,而不是将 True 或者 False 作为最终结果。
了解以上的两个点,可以让你们在使用过程中不会有很多疑惑
对于and运算符,它只有在两边表达式都为真的情况下才会成立,如果说左边的表达式不成立,那么and就不会去计算右边的表达式,直接将左边的表达式结果为最终结果;如果说左边的表达式成立,那么就不会立刻作为最终结果,因为最终值不确定,所以会计算右边的表达式并作为最终结果。
对于 or 运算符,情况是类似的,两边的值都为假时最终结果才为假,只要其中有一个值为真,那么最终结果就是真,所以 Python 按照下面的规则执行 or 运算:
如左边表达式的值为真,那么就不用计算右边表达式的值了,最终结果都是真,or 会把左边表达式的值作为最终结果。如果左边表达式的值为假,那么最终值是不确定,or 会继续计算右边表达式的值,并将右边表达式的值作为最终结果。
举个小例子:
url = "http://www.PaAey.net"
print("----False and xxx-----")
print( False and print(url) )
print("----True and xxx-----")
print( True and print(url) )
print("----False or xxx-----")
print( False or print(url) )
print("----True or xxx-----")
print( True or print(url) )
运行结果:
你们看,第一个and左边为False,那么and就不会再去计算右边的值,所以没有打印出url
第二个and左边为True,那么还需要再去计算右边的值,所以打印出了url
后面or运算符也差不多是一样的。