Python 3 – 基本运算符
运算符是用来操作操作数的构造。比如,表达式 4 + 5 = 9 中,4 和 5 被称为操作数,+ 被称为运算符。
运算符类型
Python 语言支持如下类型的运算符 −
- 算术运算符
- 比较运算符
- 赋值运算符
- 逻辑运算符
- 位运算符
- 成员运算符
- 身份运算符
让我们依次看一看所有运算符。
Python 算术运算符
假设变量 a 的值为 10,变量 b 的值为 21,则 −
运算符 | 描述 | 例子 |
---|---|---|
+ 加法 |
将运算符两侧的值相加。 | a + b = 31 |
- 减法 |
将右侧操作数从左侧操作数中减去。 | a – b = -11 |
* 乘法 |
将运算符两侧的值相乘。 | a * b = 210 |
/ 除法 |
将左侧操作数除以右侧操作数。 | b / a = 2.1 |
% 取模 |
将左侧操作数除以右侧操作数,返回余数。 | b % a = 1 |
** 指数 |
对运算符执行指数(幂)计算。 | a**b =10 的 20 次方 |
// |
向下取整除法 – 在除法的操作数中,结果为商数,小数点后的数字被删除。但是,如果操作数之一是负数,则结果向下舍入,即向负无穷大方向舍入: | 9//2 = 4,9.0//2.0 = 4.0,-11//3 = -4,-11.0//3 = -4.0 |
Python 比较运算符
这些运算符比较它们两侧的值,并决定它们之间的关系。它们也被称为关系运算符。
假设变量 a 的值为 10,变量 b 的值为 20,则 −
运算符 | 描述 | 示例 |
---|---|---|
== |
如果两个操作数的值相等,则条件为真。 | (a == b) 不为真。 |
!= |
如果两个操作数的值不相等,则条件为真。 | (a!= b) 为真。 |
> |
如果左操作数的值大于右操作数的值,则条件为真。 | (a > b) 不为真。 |
< |
如果左操作数的值小于右操作数的值,则条件为真。 | (a < b) 为真。 |
>= |
如果左操作数的值大于或等于右操作数的值,则条件为真。 | (a >= b) 不为真。 |
<= |
如果左操作数的值小于或等于右操作数的值,则条件为真。 | (a <= b) 为真。 |
Python赋值运算符
假设变量 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 |
/= 除 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 |
Python位运算符
按位运算符按位处理并执行位运算。 假设a = 60; b = 13; 现在,它们的二进制格式如下−
a = 0011 1100
b = 0000 1101
-—————-
a&b = 0000 1100
a|b = 0011 1101
a^b = 0011 0001
~a = 1100 0011
Python的内置函数bin()可用于获取整数的二进制表示。
Python语言支持以下按位运算符:
运算符 | 描述 | 例子 |
---|---|---|
& 二元与 | 如果操作数中的位都存在,则将其复制到结果中。 | (a&b)(表示0000 1100) |
二元或 | 如果存在于任一操作数中,则将其复制。 | (a | b) = 61(表示0011 1101) | |
^ 二元异或 | 如果在一个操作数中设置了该位但不在两个操作数中都设置了该位,则复制该位。 | (a^b)= 49(表示0011 0001) |
~ 二元反码 | 它是一元的,并且具有’翻转’位的效果。 | (~a) = -61(表示带符号二进制数2111 1101,2的补码形式位于2的补码形式中,因为a是带符号二进制数。 |
<< 二进制左移 | 左操作数的值向左移动由右操作数指定的位数。 | a << 2 = 240(表示1111 0000) |
>> 二进制右移 | 左操作数的值向右移动由右操作数指定的位数。 | a >> 2 = 15(表示0000 1111) |
Python逻辑运算符
Python语言支持以下逻辑运算符。假设变量 a 为True,变量 b 为False,则 –
运算符 | 描述 | 例子 |
---|---|---|
and 逻辑与 | 如果两个操作数都为True,则条件变为True。 | (a and b)为False。 |
or 逻辑或 | 如果两个操作数中有任何一个非零,则条件变为True。 | (a or b)为True。 |
not 逻辑非 | 用于翻转其操作数的逻辑状态。 | Not(a and b)为True。 |
Python成员运算符
Python的成员运算符测试序列(例如字符串,列表或元组)中是否存在成员。下面解释了两种成员运算符 –
运算符 | 描述 | 示例 |
---|---|---|
in | 如果在指定的序列中找到变量则为真,否则为假。 | x in y,当x是序列y的成员时,in给出1。 |
not in | 如果在指定的序列中没有找到变量则为真,否则为假。 | x not in y,当x不是序列y的成员时,not in给出1。 |
Python身份运算符
身份运算符比较两个对象的内存位置。有两个身份运算符如下所述−
运算符 | 描述 | 示例 |
---|---|---|
is | 如果运算符两侧的变量指向相同的对象,则为真,否则为假。 | x is y,当id(x)等于id(y)时,is返回1。 |
is not | 如果运算符两侧的变量指向相同的对象,则为假,否则为真。 | x is not y,当id(x)不等于id(y)时,is not返回1。 |
Python运算符优先级
下表按从最高到最低的优先级列出了所有运算符。
序号 | 运算符和说明 |
---|---|
1 | ** 指数(乘方) |
2 | ~ + - 补码、一元加和减(最后两个的方法名为+@和-@) |
3 | * / % // 乘、除、模和整除 |
4 | \+ - 加和减 |
5 | >> << 右移和左移位运算 |
6 | & 按位 ‘AND’ |
7 | ^ | 按位异或和逻辑或。 |
8 | <= < > >= 比较运算符 |
9 | <> == != 等式运算符 |
10 | = %= /= //= -= += *= **= 赋值运算符 |
11 | is is not 身份运算符 |
12 | in not in 成员运算符 |
13 | not or and 逻辑运算符 |