Python 中的运算符主要分为算术运算符、比较(关系)运算符、赋值运算符、逻辑运算符、位运算符、成员运算符和身份运算符共 7 大类,运算符之间也是由优先级的,下面我们就来进行具体介绍。
Python 的算术运算符共有 7 个,详见表 1。
| 运算符 | 描述 |
|---|---|
| + | 两个数相加,或是字符串连接 |
| - | 两个数相减 |
| * | 两个数相乘,或是返回一个重复若干次的字符串 |
| / | 两个数相除,结果为浮点数(小数) |
| // | 两个数相除,结果为向下取整的整数 |
| % | 取模,返回两个数相除的余数 |
| ** | 幂运算,返回乘方结果 |
以上算术运算符的示例和运行结果如下所示:
Python 的比较(关系)运算符共 6 个,详见表 2。
| 运算符 | 描述 |
|---|---|
| == | 比较两个对象是否相等 |
| != | 比较两个对象是否不相等 |
| > | 大小比较,例如 x>y 将比较 x 和 y 的大小,如 x 比 y 大,返回 True,否则返回 False |
| < | 大小比较,例如 x<y 将比较 x 和 y 的大小,如 x 比 y 小,返回T rue,否则返回 False |
| >= | 大小比较,例如 x>=y 将比较 x 和 y 的大小,如 x 大于等于 y,返回 True,否则返回 False |
| <= | 大小比较,例如 x<=y 将比较 x 和 y 的大小,如 x 小于等于 y,返回 True,否则返回 False |
上述比较(关系)运算符的示例如下所示:
Python 的赋值运算符共 8 个,详见表 3。
| 运算符 | 描述 |
|---|---|
| = | 常规赋值运算符,将运算结果赋值给变量 |
| += | 加法赋值运算符,例如 a+=b 等效于 a=a+b |
| -= | 减法赋值运算符,例如 a-=b 等效于 a=a-b |
| *= | 乘法赋值运算符,例如 a*=b 等效于 a=a*b |
| /= | 除法赋值运算符,例如 a/=b 等效于 a=a/b |
| %= | 取模赋值运算符,例如 a%=b 等效于 a=a%b |
| **= | 幂运算赋值运算符,例如 a**=b等效于 a=a**b |
| //= | 取整除赋值运算符,例如 a//=b 等效于 a=a//b |
上述赋值运算符的示例如下所示:
Python 的逻辑运算符共 3 个,详见表 4。
| 运算符 | 描述 |
|---|---|
| and | 布尔“与”运算符,返回两个变量“与”运算的结果 |
| or | 布尔“或”运算符,返回两个变量“或”运算的结果 |
| not | 布尔“非”运算符,返回对变量“非”运算的结果 |
上述逻辑运算符的示例如下所示:
Python 的位运算符共 6 个,详见表 5。
| 运算符 | 描述 |
|---|---|
| & | 按位“与”运算符:参与运算的两个值,如果两个相应位都为 1,则结果为 1,否则为 0 |
| | | 按位“或”运算符:只要对应的两个二进制位有一个为 1 时,结果就为 1 |
| ^ | 按位“异或”运算符:当两对应的二进制位相异时,结果为 1 |
| ~ | 按位“取反”运算符:对数据的每个二进制位取反,即把 1 变为 0,把 0 变为 1 |
| << | “左移动”运算符:运算数的各二进制位全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃, 低位补 0 |
| >> |
“右移动”运算符:运算数的各二进制位全部右移若干位,由“>>”右边的数指定移动的位数 |
上述位运算符的示例如下所示:
Python 的成员运算符共 2 个,详见表 6。
| 运算符 | 描述 |
|---|---|
| in | 当在指定的序列中找到值时返回 True,否则返回 False |
| not in | 当在指定的序列中没有找到值时返回 True,否则返回 False |
上述成员运算符的示例如下所示:
Python 的身份运算符共 2 个,详见表 7。
| 运算符 | 描述 |
|---|---|
| is | 判断两个标识符是否引用自同一个对象,若引用的是同一个对象则返回 True,否则返回 False |
| is not | 判断两个标识符是不是引用自不同对象,若引用的不是同一个对象则返回 True,否则返回 False |
上述身份运算符的示例如下所示:
上述 34 个 Python 运算符的优先级从高到低排序如表 8 所示。
| 运算符 | 描述 |
|---|---|
| ** | 幂 |
| ~ |
按位“取反” |
| *、/、%、// | 乘、除、取模、取整除 |
| +、- | 加、减 |
| >>、<< | 右移、左移 |
| & | 按位“与” |
| ^、| | 按位“异或”、按位“或” |
| <=、<、>、>= | 比较运算符 |
| ==、!= | 等于、不等于 |
| =、%=、/=、//=、-=、+=、*=、**= | 赋值运算符 |
| is、is not | 身份运算符 |
| in、not in | 成员运算符 |
| and or not | 逻辑运算符 |

