扫码一下
查看教程更方便
运算符是可以操纵操作数值的结构。
考虑表达式 4 + 5 = 9
。这里,4 和 5 称为操作数,+ 称为运算符。
Python 语言支持以下类型的运算符。
让我们一一看看所有的运算符。
假设变量 a 为 10,变量 b 为 20,然后
操作符 | 描述 | 例子 |
---|---|---|
+ | 添加 在运算符的任一侧添加值 | 。 a + b = 30 |
- | 减法 从左手操作数中减去右手操作数 | 。 a – b = -10 |
* | 乘法 将运算符两侧的值相乘 | a * b = 200 |
/ | 分配 将左手操作数除以右手操作数 | b / a = 2 |
% | 模量 将左手操作数除以右手操作数并返回余数 | b % a = 0 |
** | 指数 对运算符执行指数(幂)计算 | a**b =1020 次方 |
// | Floor Division - 操作数的除法,其结果是去除小数点后数字的商。但是,如果操作数之一为负,则结果是地板,即从零舍入(向负无穷大) | - 9//2 = 4 和 9.0//2.0 = 4.0, -11//3 = -4, -11.0//3 = -4.0 |
这些运算符比较它们两侧的值并决定它们之间的关系。它们也称为关系运算符。
假设变量 a 为 10,变量 b 为 20,然后 -
操作符 | 描述 | 例子 |
---|---|---|
== | 如果两个操作数的值相等,则条件成立。 | (a == b) 不是真的。 |
!= | 如果两个操作数的值不相等,则条件为真。 | (a != b) 是真的。 |
<> | 如果两个操作数的值不相等,则条件为真。 | (a <> b) 是真的。这类似于 != 运算符。 |
> | 如果左操作数的值大于右操作数的值,则条件为真。 | (a > b) 不正确。 |
< | 如果左操作数的值小于右操作数的值,则条件成立。 | (a < b) 是真的。 |
>= | 如果左操作数的值大于或等于右操作数的值,则条件为真。 | (a >= b) 不是真的。 |
<= | 如果左操作数的值小于或等于右操作数的值,则条件为真。 | (a <= b) 是真的。 |
假设变量 a 为 10,变量 b 为 20,然后 -
操作符 | 描述 | 例子 |
---|---|---|
= | 将右侧操作数的值分配给左侧操作数 | c = a + b 将 a + b 的值赋给 c |
+= | 添加 AND 它将右操作数添加到左操作数并将结果分配给左操作数 | c += a 等价于 c = c + a |
-= | 减去 AND 它从左操作数中减去右操作数并将结果分配给左操作数 | c -= a 等价于 c = c - a |
*= | 乘以 AND 它将右操作数与左操作数相乘并将结果分配给左操作数 | c *= a 等价于 c = c * a |
/= | 除以与 它将左操作数与右操作数相除,并将结果分配给左操作数 | c /= a 等价于 c = c / a |
%= | 模数 AND 它使用两个操作数取模并将结果分配给左操作数 | c %= a 等价于 c = c % a |
**= | 指数 AND 对运算符执行指数(幂)计算并将值分配给左操作数 | c *= a 等价于 c = c * a |
//= | 楼层划分 它对运算符执行地板除法并将值分配给左操作数 | c //= a 等价于 c = c // a |
按位运算符作用于位并执行逐位操作。假设 a = 60; b = 13;现在在二进制格式中,它们的值将分别为 0011 1100 和 0000 1101。下表列出了 Python 语言支持的按位运算符,并在其中每个示例中,我们使用上述两个变量(a 和 b)作为操作数 -
a = 0011 1100
b = 0000 1101
-----------------
a&b = 0000 1100
a|b = 0011 1101
a^b = 0011 0001
~a = 1100 0011
Python语言支持的按位运算符有以下几种
操作符 | 描述 | 例子 |
---|---|---|
& | 二进制 AND 如果两个操作数中都存在,则运算符将其复制到结果中 | (a & b) (表示 0000 1100) |
| | 二进制或 如果它存在于任一操作数中,则它会复制一点。 | (a | b) = 61(表示 0011 1101) |
^ | 二进制异或 如果它被设置在一个操作数中而不是两个操作数中,它就会复制该位。 | (a ^ b) = 49(表示 0011 0001) |
~ | 二进制补码 它是一元的,具有“翻转”位的效果。 | (~a ) = -61(由于带符号的二进制数,表示 2 的补码形式的 1100 0011。 |
<< | 二进制左移 左操作数值向左移动右操作数指定的位数。 | a << 2 = 240(意味着 1111 0000) |
>> | 二进制右移 左操作数的值向右移动右操作数指定的位数。 | a >> 2 = 15(表示 0000 1111) |
Python 语言支持以下逻辑运算符。假设变量 a 为 10,变量 b 为 20,则
操作符 | 描述 | 例子 |
---|---|---|
and 逻辑与 | 如果两个操作数都为真,则条件为真。 | (a and b) 是正确的。 |
or 逻辑或 | 如果两个操作数中的任何一个不为零,则条件为真。 | (a or b) 是真的。 |
not 逻辑非 | 用于反转其操作数的逻辑状态。 | not (a and b) 是假的。 |
Python 的成员资格运算符测试序列中的成员资格,例如字符串、列表或元组。有两个成员资格运营商,如下所述 -
操作符 | 描述 | 例子 |
---|---|---|
in | 如果找到指定序列中的变量,则计算结果为 true,否则为 false。 | x in y,如果 x 是序列 y 的成员,则此处 in 导致 1。 |
not in | 如果在指定的序列中没有找到变量,则计算结果为 true,否则计算为 false。 | x not in y, 如果 x 不是序列 y 的成员,这里 not in 结果为 1。 |
身份运算符比较两个对象的内存位置。下面解释了两个身份运算符 -
操作符 | 描述 | 例子 |
---|---|---|
is | 如果运算符任一侧的变量指向同一对象,则计算结果为真,否则为假。 | x is y,如果 id(x) 等于 id(y) ,则结果为 1。 |
is not | 如果运算符任一侧的变量指向同一对象,则计算结果为 false,否则为 true。 | x not is y,如果 id(x) 不等于 id(y) ,这里的结果不是1。 |
下表列出了从最高优先级到最低优先级的所有运算符。
No. | 运算符 | 描述 |
---|---|---|
1 | ** | 求幂(提高到幂) |
2 | ~ + - | 补码、一元加减(最后两个的方法名称是 +@ 和 -@) |
3 | * / % // | 乘法、除法、取模和除法 |
4 | + - | 加减 |
5 | >> << | 左右位移 |
6 | & | 按位“与” |
7 | ^ & | 按位互斥的“OR”和常规的“OR” |
8 | <= < > >= | 比较运算符 |
9 | <> == != | 等号运算符 |
10 | = %= /= //= -= += = *= | 赋值运算符 |
11 | is not is |
身份运算符 |
12 | in not in | 成员运算符 |
13 | not or and | 逻辑运算符 |