@Author: Basil Guo
@Date· Jun. 9, 2021
@Description: Python运算符和运算优先级


1. 运算符

相比其它语言,Python的运算符反而多了一点,不过Python没有三目运算符。这里面我们可以归归类,粉色的是算术运算符,黄色的是关系运算符,绿色的是逻辑运算符,蓝色的是测试运算符,兰色的是位运算符,浅紫色是集合运算符,紫色是矩阵相乘运算符。

运算符 功能说明 运算符 功能说明
+ 算术加法,列表,元组,字符串合并与连接,正号 - 算术减法,集合差集,相反数
* 算术乘法,序列重复 / 真除法
// 求整商,但如果操作数中有实数的话,结果为实数形式的整数 % 求余数,字符串格式化
** 幂运算 <<=>>===!= (值)大小比较,集合的包含关系比较
or 逻辑或 and 逻辑与
not 逻辑非 in 成员测试
&#124;^&<<>>~ 位或、位异或、位与、左移位、右移位、位求反。
只能用于整数
is 对象同一性测试,即测试是否为同一个对象或内存地址是否相同
&&#124;^ 集合交集、并集、对称差集 @ 矩阵相乘运算符
Python 3.5增加

以下皆是Python独有的

  • 关系运算符可以连用即

    1. >>> 1 < 3 < 5 #等价于1 < 3 and 3 < 5 True
    2. >>> 'Hello' > 'world' #比较字符串大小 False
    3. >>> [1, 2, 3] < [1, 2, 4] #比较列表大小 True
    4. >>> 'Hello' > 3 #字符串和数字不能比较 TypeError: unorderable types: str() > int()
    5. >>> {1, 2, 3} < {1, 2, 3, 4} #测试是否真子集 False
  • in: 测试一个对象是否为另一个对象的元素

    1. >>> 'abc' in 'abcdefg' #子字符串测试 True
  • is: 同一性测试运算符(identity comparison),测试两个对象是否是同一个,同一个对象则二者具有相同的内存地址,x is y相当于判断id(x) == id(y)

  • 逗号,不是运算符,只是一个普通分隔符
  • 分号;在两个赋值语句中间可以使用a = 1; b = 2,平常不能使用

    2. 运算优先级

    运算优先级是在运算时,应该先做什么运算,再做什么运算。例如数学上是先乘除,后加减。下面这个图也不是很完整,但是基本已经表达出来了,如果有小括号,它的优先级最高。
    operator.jpg