11-运算符-逻辑运算符and or not


逻辑运算符,主要用于实现多个条件的连续判断

and 与,逻辑与,有并且的意思
or 或,逻辑或,有或者的意思
not 非,逻辑非,有取反,反义,相反的意思

and 判断两个的结果是否都成立,是否都为真
如果两边都为真,则最终and运算的结果就是True
如果一边为False,则最终结果为False
真真得真
真假得假
假假得假

ret = True and True
print(ret)  # True

ret = False and True
print(ret)  # False

ret = False and False
print(ret)  # False

ret = True and False
print(ret)  # False
# 查看一个整数是否处于1~100的范围内?
num = 101
ret = num >= 1 and num <= 100
print(ret)    # False

or 或者的意思,
判断两边只要有一方的结果为True,则or运算的最终结果就是True
只有两边的运算结果都为False时,or运算的最终结果才是False
真或真,就是真
真或假,还是真
假或假,就是假

ret = True or True
print(ret)  # True

ret = False or True
print(ret)  # True

ret = False or False
print(ret)  # False

ret = True or False
print(ret)  # True
# 判断一个密码长度是否不符合要求
# 密码长度要求必须在6-16之间

password = "123456"
length = len(password)  # 可以通过len()函数计算一个容器里面的成员的数量
print(length)  # 6

ret = length < 6 or length > 16
print(ret)   # False 

not 非,取反,反义,相反
not的使用,只能在后面写上数据或表达式
非真即假
非假即真

ret = not True
print(ret) # False

ret = not False
print(ret)  # True
# 工作中有时候会把数据转换成布尔型,这时候,我们除了使用bool函数以外,还可以使用not
ret = bool(1)
print(ret) # True

ret = not not 1
print(ret)  # True

ret = not 1
print(ret)  # False

逻辑运算符的短路现象,主要是因为左边的运算结果已经可以让python清晰整个逻辑运算的最终结果了。

# 因为and要两边表达式结果都是True的时候,才是True,
# 如果左边是False,那么右边无论是True/False,都不会影响最终and的结果
# False and False  => False
# False and True   => False

False and print("hello")  # 空白 逻辑短路现象
# 因为or要两边表达式结果都是False的情况下,才是False
# 如果左边是True,那么右边无论是True/False,都不会响应最终or的结果
# True or False  ==> True
# True or True   ==> True

True or print(456)  # 空白 逻辑短路
# 因为左边是True,所以最终and的运算结果还不确定,所以下面的print会执行
True and print(789)   # 789
# 因为左边是False,所以最终or的运算结果还不确定,所以下面的print会执行
False or print(123)     # 123

逻辑运算符的最终结果,因为存在 短路现象,所以最终结果不一定就是布尔值

print(2 and 1)  # 1
print(0 and 1)  # 0

print(0 or 1)  # 1
print(3 or 5)  # 3

相关