一、逻辑运算
逻辑运算符: and or not,结果为布尔值(True和False)
1、基本逻辑运算符介绍
- not :将后面的逻辑运算结果取反
>>> not 1 < 2
False
>>> not 1 == 2
True
- and :连接左右两个条件,当两个条件都为真时,返回结果为真(True),否则为假(False)
>>> 1 == 1 and 3 < 5
True
>>> 1 != 2 and 2 == 3
False
- or 连接左右两个条件,当有一个条件为真时,返回结果为真(True),否者为假(False)
>>> 1 == 2 or 1 < 3
True
>>> 1 > 4 or 3*4 < 20
True
2、运算优先级: () > not > and > or
当多个逻辑运算符同时出现时,按照优先级进行判断
# 优先级
1 == 3 and 23 < 43 or not 1 < 3 and 1*2 == 2 or 3-2 < 5
# 等价于
(1 == 3 and 23 < 43) or ((not 1 < 3) and 1*2 == 2) or 3-2 < 5
3、显式与隐式布尔值逻辑运算
隐式布尔值:
- False :0 , None , 空
- True :除以上外所有整数、浮点数、字符串等
>>> 1 < 3 and 1
1
>>> 1 < 3 and 0 or "aa"
'aa'
4、短路运算
一旦整个逻辑运算结果可以确定,计算机就会返回确定结果处的逻辑运算值,如果是隐式布尔值就返回隐式布尔值
and 一假为假,全真为真
or 一真为真,全假为假
>>> 1 and 0
0
>>> 0 or 2
2
>>> None or 1 and "aa" and []
[]
二、比大小
同等类型可以比大小
整数类型可以任意相比
字符串比相应位置字符的编码
其他类型需要相同位置相同类型相比
>>> 1 < 3
True
>>> 1 > 1.4
False
>>> "asdksbd" > "djasks"
False
>>> [1,2,3,4,5] < [3,2,3,1,4]
True