Python 各类运算符总结

6 阅读4分钟

Python 中各类运算符的用法和特性:

算术运算符

算术运算符主要用于数值间的基本数学运算。

  • 加法(+):将两个数相加,或者把两个可迭代对象合并。例如:5 + 3的结果是8[1, 2] + [3, 4]会得到[1, 2, 3, 4]
  • 减法(-):用一个数减去另一个数。比如:7 - 2等于5
  • 乘法(*):实现数的相乘,也能重复生成可迭代对象。例如:3 * 412'a' * 3会输出'aaa'
  • 除法(/):进行除法运算,结果为浮点数。像10 / 3的结果是3.333...
  • 整除(//):做除法后取整数部分。例如:10 // 3等于3
  • 取模(%):返回除法运算后的余数。比如:10 % 3的结果是1
  • 幂运算()**:计算一个数的幂次方。例如:2 ** 3等于8

比较运算符

比较运算符用于比较两个值,返回的结果是布尔值(True或False)。

  • 等于(==):判断两个值是否相等。例如:5 == 5返回True5 == 3返回False
  • 不等于(!=):判断两个值是否不相等。比如:5 != 3返回True
  • 大于(>):判断左边的值是否大于右边的值。例如:7 > 3返回True
  • 小于(<):判断左边的值是否小于右边的值。比如:3 < 7返回True
  • 大于等于(>=):判断左边的值是否大于或等于右边的值。例如:5 >= 5返回True
  • 小于等于(<=):判断左边的值是否小于或等于右边的值。比如:3 <= 5返回True

赋值运算符

赋值运算符用于给变量赋值。

  • 简单赋值(=):把右边的值赋给左边的变量。例如:x = 5
  • 复合赋值(+=, -=, *= 等):先进行运算,再将结果赋值给变量。比如:x += 2等价于x = x + 2

逻辑运算符

逻辑运算符用于组合条件语句,返回布尔值。

  • 与(and):只有当两边的条件都为True时,结果才为True。例如:(5 > 3) and (2 < 4)返回True
  • 或(or):只要两边的条件中有一个为True,结果就为True。比如:(5 < 3) or (2 < 4)返回True
  • 非(not):对条件的结果取反。例如:not (5 < 3)返回True

位运算符

位运算符针对二进制数进行逐位操作。

  • 按位与(&):对应位都为1时,结果位才为1。例如:5 & 3,即101 & 011,结果是001,也就是1
  • 按位或(|):对应位中有一个为1,结果位就为1。比如:5 | 3,即101 | 011,结果是111,也就是7
  • 按位异或(^):对应位不同时,结果位为1。例如:5 ^ 3,即101 ^ 011,结果是110,也就是6
  • 按位取反(~):将每一位取反。例如:~5,即~0101,结果是1010,也就是-6
  • 左移(<<):将二进制数向左移动指定的位数。比如:5 << 2,即101 << 2,结果是10100,也就是20
  • 右移(>>):将二进制数向右移动指定的位数。例如:5 >> 1,即101 >> 1,结果是10,也就是2

成员运算符

成员运算符用于判断一个值是否是某个序列的成员。

  • in:如果值在序列中,返回True。例如:3 in [1, 2, 3]返回True
  • not in:如果值不在序列中,返回True。比如:4 not in [1, 2, 3]返回True

身份运算符

身份运算符用于比较两个对象是否引用自同一个内存地址。

  • is:如果两个对象是同一个对象,返回True。例如:a = [1, 2]; b = a; a is b返回True
  • is not:如果两个对象不是同一个对象,返回True。比如:a = [1, 2]; b = [1, 2]; a is not b返回True

运算符优先级

运算符优先级决定了表达式中运算执行的先后顺序。优先级从高到低大致为:

  1. 括号()
  2. 幂运算**
  3. 单目运算符+x, -x, ~x
  4. 乘除运算*, /, //, %
  5. 加减运算+, -
  6. 位移运算<<, >>
  7. 位运算&, ^, |
  8. 比较运算==, !=, >, <, >=, <=
  9. 身份运算is, is not
  10. 成员运算in, not in
  11. 逻辑运算not, and, or