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