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