在 Python 中,支持以下类型的运算符:
算术运算符
比较(关系)运算符
逻辑(布尔)运算符
位运算符
赋值运算符
成员运算符
身份运算符
- 算术运算符
运算符 含义 示例
- 加:两个对象相加,或者一元加 x + y
- 减:两个对象相减,或得到负数 x - y
- 乘:两个操作数相乘,或是返回一个被重复若干次的字符串 x * y
/ 除:两个操作数相除(总是浮点数) x / y
% 取模:返回除法(/)的余数 x % y(x/y 的余数)
// 取整除(地板除):返回商的整数部分 x // y
** 幂:返回 x 的 y 次幂 x ** y
- 比较运算符
运算符 含义 示例
大于:如果左操作数大于右操作数,则为 True x > y
< 小于:如果左操作数小于右操作数,则为 True x < y
== 等于:如果两个操作数相等,则为 True x == y
!= 不等于:如果两个操作数不相等,则为 True x != y
= 大于等于:如果左操作数大于或等于右操作数,则为 True x >= y
<= 小于等于:如果左操作数小于或等于右操作数,则为 True x <= y
- 赋值运算符
运算符 示例 等价于
= x = 5 x = 5(相同)
+= x += 5 x = x + 5
-= x -= 5 x = x - 5
*= x *= 5 x = x * 5
/= x /= 5 x = x / 5
%= x %= 5 x = x % 5
//= x //= 5 x = x // 5
**= x **= 5 x = x ** 5
&= x &= 5 x = x & 5
|= x |= 5 x = x | 5
^= x ^= 5 x = x ^ 5
= x >>= 5 x = x >> 5
<<= x <<= 5 x = x << 5
- 位运算符
运算符 含义 示例
& 按位与(AND):参与运算的两个值的两个相应位都为1,则该位的结果为1;否则为0 x & y
| 按位或(OR):参与运算的两个值的两个相应位有一个为1,则该位的结果为1;否则为0 x | y
~ 按位翻转/取反(NOT):对数据的每个二进制位取反,即把 1 变为 0 ,把 0 变为 1 ~x
^ 按位异或(XOR):当两个对应的二进制位相异时,结果为1 x ^ y
按位右移 :运算数的各个二进制位全部右移若干位 x >> 2
<< 按位左移:运算数的各个二进制位全部左移若干位,高位丢弃,地位不补 0 x << 2
在计算机里面,负数是以补码存储的
原码求补码:取反,+1
补码求原码:取反,+1
取反操作是在原码上进行的!
- 逻辑运算符
运算符 含义 示例
and x and y 逻辑与:如果 x 为 False,返回 false;否则返回 y 的计算值
or x or y 逻辑或:如果 x 是非 0,返回 x 的值;否则返回 y 的计算值
not not x 逻辑非:如果 x 为 False,返回 True;如果 x 为 True,返回 False
- 成员运算符
运算符 含义 示例
in 如果在指定序列中找到值/变量,返回 True;否则返回 False 5 in x
not in 如果在指定序列中没有找到值/变量,返回 True;否则返回 False 5 not in x
- 身份运算符
身份运算符用于检查两个值(或变量)是否位于存储器的同一部分。
注意: 两个变量相等,并不意味着它们也相同。
运算符 含义 示例
is 如果操作数相同,则为 True(引用同一个对象) x is True
is not 如果操作数不相同,则为 True(引用不同的对象) x is not True
- 运算符优先级
【注】从低到高
运算符 描述
lambda Lambda表达式
or 布尔“或”
and 布尔“与”
not x 布尔“非”
in,not in 成员测试
is,is not 同一性测试
<,<=,>,>=,!=,== 比较
| 按位或
^ 按位异或
& 按位与
<<,>> 移位
+,- 加法与减法
*,/,% 乘法、除法与取余
+x,-x 正负号
~x 按位翻转
** 指数
x.attribute 属性参考
x[index] 下标
x[index:index] 寻址段
f(arguments…) 函数调用
(experession,…) 绑定或元组显示
[expression,…] 列表显示
{key:datum,…} 字典显示
‘expression,…’ 字符串转换