Python中的逻辑运算符and or not

2019-10-04  本文已影响0人  上帝大人

先看最简单的not

not x

它的结果只有两种
如果x为不是False'',结果就为True,否则结果是False

再看and

x and y

他的结果有两种,不是x的值,就是y的值
如果x为False,就返回x的值,如果x为True,则返回y的值,它返回的是关系式的值,而不是对应的布尔值

print(False and True)
print(0 and 4) 
print(4 and 0)

>>> False
>>> 0
>>> 0

再看结果是否符合预期,在带有and的if判断中,只要有一个关系式为False就是Fasle,而and的作用就是找可能为False的关系式,所以它的逻辑是:如果第一个是False就返回第一个的值,否则返回第二个的值,在进行if判断的时候,再对and的结果进行判断是否为False

在看or

x or y

他的结果有两种,不是x的值,就是y的值
如果x为True,就返回x的值,如果x不为True,则返回y的值,它返回的是关系式的值,而不是对应的布尔值

print(False or True)
print(0 or 4) 
print(4 or 0)
print('' or 0 )

>>> True
>>> 4
>>> 4
>>> 0

结果也是符合预期,or 尝试找到布尔值为True的关系式,,如果第一个为True,那就返回它,否则,返回第二个,在带有or的if的判断中,例如

if '' or 0:
    print('lalaal')

他会先进行or运算,第一个的布尔值为False,所以返回第二个的值0,if 0 时,0的布尔值为False,所以下面的不会被输出。

上一篇下一篇

猜你喜欢

热点阅读