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