Skip to content

运算符

什么是运算符?

本章节主要说明 Python 的运算符。

举个简单的例子:

python
2 + 3

在这个例子中,+ 就是一个运算符。

Python 语言支持以下类型的运算符:

  • 算术运算符
  • 比较运算符
  • 赋值运算符
  • 逻辑运算符
  • 位运算符
  • 成员运算符
  • 身份运算符
  • 运算符重载

算术运算符

  • + 加法运算符,用于两个数相加。
  • - 减法运算符,用于两个数相减。
  • * 乘法运算符,用于两个数相乘。
  • / 除法运算符,用于两个数相除。
  • // 整除运算符,用于两个数相除,只保留整数部分。
  • % 取模运算符,用于两个数相除,返回余数。
  • ** 幂运算符,用于两个数的乘方。

比较运算符

  • == 等于运算符,用于判断两个值是否相等。
  • != 不等于运算符,用于判断两个值是否不相等。
  • > 大于运算符,用于判断左边的值是否大于右边的值。
  • < 小于运算符,用于判断左边的值是否小于右边的值。
  • >= 大于等于运算符,用于判断左边的值是否大于等于右边的值。
  • <= 小于等于运算符,用于判断左边的值是否小于等于右边的值。

赋值运算符

  • = 赋值运算符,用于给变量赋值。
  • += 加等于运算符,用于给变量加上一个值。
  • -= 减等于运算符,用于给变量减去一个值。
  • *= 乘等于运算符,用于给变量乘以一个值。
  • /= 除等于运算符,用于给变量除以一个值。
  • //= 整除等于运算符,用于给变量整除以一个值。
  • %= 取模等于运算符,用于给变量取模以一个值。
  • **= 幂等于运算符,用于给变量乘方以一个值。
  • := 海象运算符,用于给变量赋值。

位运算符

按位运算符是把数字看作二进制来进行计算的。Python 中的按位运算法则如下:

下表中变量 a 为 60,b 为 13 二进制格式如下:

a = 0011 1100

b = 0000 1101

-----------------

a&b = 0000 1100

a|b = 0011 1101

a^b = 0011 0001

~a  = 1100 0011
  • & 按位与运算符,参与运算的两个值,如果两个相应位都为 1,则该位的结果为 1,否则为 0。
  • | 按位或运算符,参与运算的两个值,如果两个相应位中有 1,则该位的结果为 1,否则为 0。
  • ^ 按位异或运算符,参与运算的两个值,如果两个相应位相异,则该位的结果为 1,否则为 0。
  • ~ 按位取反运算符,对数据的每个二进制位取反,即把 1 变为 0,把 0 变为 1。
  • << 左移动运算符,运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补 0。
  • >> 右移动运算符,运算数的各二进位全部右移若干位,由 >> 右边的数字指定了移动的位数。

逻辑运算符

\

  • and 逻辑与运算符,只有所有条件都为 True,表达式才为 True。
  • or 逻辑或运算符,只要其中有一个条件为 True,表达式就为 True。
  • not 逻辑非运算符,用于反转表达式的结果,如果表达式为 True,则逻辑非运算符将得到 False,如果表达式为 False,则逻辑非运算符将得到 True。

成员运算符

  • in 成员运算符,如果在指定的序列中找到值返回 True,否则返回 False。
  • not in 非成员运算符,如果在指定的序列中没有找到值返回 True,否则返回 False。

身份运算符

  • is 身份运算符,比较两个标识符是不是引用自一个对象。
  • is not 非身份运算符,比较两个标识符是不是引用自不同对象。

运算符优先级

运算符的优先级决定了表达式中运算符的结合顺序。Python 语言中运算符的优先级从高到低依次为:

  • 圆括号 ()
  • 乘除 %
  • 加减
  • 位移 << >>
  • 与或 ^
  • 成员运算符 in, not in
  • 身份运算符 is, is not
  • 赋值运算符 =, +=, -=, *=, /=, //=, %=, **=, <<=, >>=
  • 条件运算符 if-else

运算符重载

运算符重载是指在已有的运算符的基础上,定义新的运算符,以实现对特定类型对象的操作。