@Author: Basil Guo
@Date· Jun. 9, 2021
@Description: Python运算符和运算优先级
1. 运算符
相比其它语言,Python的运算符反而多了一点,不过Python没有三目运算符。这里面我们可以归归类,粉色的是算术运算符,黄色的是关系运算符,绿色的是逻辑运算符,蓝色的是测试运算符,兰色的是位运算符,浅紫色是集合运算符,紫色是矩阵相乘运算符。
| 运算符 | 功能说明 | 运算符 | 功能说明 |
|---|---|---|---|
+ |
算术加法,列表,元组,字符串合并与连接,正号 | - |
算术减法,集合差集,相反数 |
* |
算术乘法,序列重复 | / |
真除法 |
// |
求整商,但如果操作数中有实数的话,结果为实数形式的整数 | % |
求余数,字符串格式化 |
** |
幂运算 | <、<=、>、>=、==、!= |
(值)大小比较,集合的包含关系比较 |
or |
逻辑或 | and |
逻辑与 |
not |
逻辑非 | in |
成员测试 |
|、^、&、<<、>>、~ |
位或、位异或、位与、左移位、右移位、位求反。 只能用于整数 |
is |
对象同一性测试,即测试是否为同一个对象或内存地址是否相同 |
&、|、^ |
集合交集、并集、对称差集 | @ |
矩阵相乘运算符 Python 3.5增加 |
以下皆是Python独有的
关系运算符可以连用即
>>> 1 < 3 < 5 #等价于1 < 3 and 3 < 5 True>>> 'Hello' > 'world' #比较字符串大小 False>>> [1, 2, 3] < [1, 2, 4] #比较列表大小 True>>> 'Hello' > 3 #字符串和数字不能比较 TypeError: unorderable types: str() > int()>>> {1, 2, 3} < {1, 2, 3, 4} #测试是否真子集 False
in: 测试一个对象是否为另一个对象的元素>>> 'abc' in 'abcdefg' #子字符串测试 True
is: 同一性测试运算符(identity comparison),测试两个对象是否是同一个,同一个对象则二者具有相同的内存地址,x is y相当于判断id(x) == id(y)- 逗号
,不是运算符,只是一个普通分隔符 - 分号
;在两个赋值语句中间可以使用a = 1; b = 2,平常不能使用2. 运算优先级
运算优先级是在运算时,应该先做什么运算,再做什么运算。例如数学上是先乘除,后加减。下面这个图也不是很完整,但是基本已经表达出来了,如果有小括号,它的优先级最高。
