Python 中各类运算符的用法和特性:
算术运算符
算术运算符主要用于数值间的基本数学运算。
- 加法(+):将两个数相加,或者把两个可迭代对象合并。例如:
5 + 3
的结果是8
,[1, 2] + [3, 4]
会得到[1, 2, 3, 4]
。 - 减法(-):用一个数减去另一个数。比如:
7 - 2
等于5
。 - 乘法(*):实现数的相乘,也能重复生成可迭代对象。例如:
3 * 4
是12
,'a' * 3
会输出'aaa'
。 - 除法(/):进行除法运算,结果为浮点数。像
10 / 3
的结果是3.333...
。 - 整除(//):做除法后取整数部分。例如:
10 // 3
等于3
。 - 取模(%):返回除法运算后的余数。比如:
10 % 3
的结果是1
。 - 幂运算()**:计算一个数的幂次方。例如:
2 ** 3
等于8
。
比较运算符
比较运算符用于比较两个值,返回的结果是布尔值(True或False)。
- 等于(==):判断两个值是否相等。例如:
5 == 5
返回True
,5 == 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
。
运算符优先级
运算符优先级决定了表达式中运算执行的先后顺序。优先级从高到低大致为:
- 括号:
()
- 幂运算:
**
- 单目运算符:
+x
,-x
,~x
- 乘除运算:
*
,/
,//
,%
- 加减运算:
+
,-
- 位移运算:
<<
,>>
- 位运算:
&
,^
,|
- 比较运算:
==
,!=
,>
,<
,>=
,<=
- 身份运算:
is
,is not
- 成员运算:
in
,not in
- 逻辑运算:
not
,and
,or