Python基本运算符
运算符是可以操纵操作数的值的构造。
考虑表达式4 + 5 =9。这里,4和5称为操作数,而+称为运算符。
运营商类型
Python语言支持以下类型的运算符。
- 算术运算符
- 比较(关系)运算符
- 赋值运算符
- 逻辑运算符
- 按位运算符
- 会员运营商
- 身份运算符
让我们一一看一下所有运算符。
Python算术运算符
假设变量a持有10,变量b持有20,则:
[ 显示范例 ]
Operator | 描述 | Example |
---|---|---|
+加法 | 在运算符的任一侧添加值。 | a + b = 30 |
-减法 | 从左手操作数中减去右手操作数。 | a – b = -10 |
*乘法 | 将运算符两边的值相乘 | a * b = 200 |
/ 分配 | 将左操作数除以右操作数 | b / a = 2 |
模量百分比 | 将左操作数除以右操作数并返回余数 | b%a = 0 |
**指数 | 对运算符执行指数(幂)计算 | 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,则:
[ 显示范例 ]
Operator | 描述 | Example |
---|---|---|
== | 如果两个操作数的值相等,则条件变为true。 | (a == b)不正确。 |
!= | 如果两个操作数的值不相等,则条件为真。 | (a!= b)是正确的。 |
<> | 如果两个操作数的值不相等,则条件为真。 | (a <> b)是正确的。这类似于!=运算符。 |
> | 如果左操作数的值大于右操作数的值,则条件为true。 | (a> b)是不正确的。 |
< | 如果左操作数的值小于右操作数的值,则条件为true。 | (a |
>= | 如果左操作数的值大于或等于右操作数的值,则条件为true。 | (a> = b)不正确。 |
<= | 如果左操作数的值小于或等于右操作数的值,则条件为true。 | (a <= b)是正确的。 |
Python赋值运算符
假设变量a持有10,变量b持有20,则:
[ 显示范例 ]
Operator | 描述 | Example |
---|---|---|
= | 将值从右侧操作数分配给左侧操作数 | 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 |
%=模数AND | 它使用两个操作数取模,并将结果分配给左操作数 | c%= a等于c = c%a |
** =指数AND | 对运算符执行指数(幂)计算并将值赋给左操作数 | c ** = a等效于c = c ** a |
// =楼层划分 | 它对运算符进行地板除法并将值赋给左操作数 | c // = a等效于c = c // a |
Python按位运算符
按位运算符对位进行运算并执行逐位运算。假设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语言支持以下Bitwise运算符
[ 显示范例 ]
Operator | 描述 | Example |
---|---|---|
&二进制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逻辑运算符
Python语言支持以下逻辑运算符。假设变量a持有10,变量b持有20
[ 显示范例 ]
Operator | 描述 | Example |
---|---|---|
和逻辑与 | 如果两个操作数都为真,则条件为真。 | (a和b)是正确的。 |
或逻辑或 | 如果两个操作数中的任何一个都不为零,则条件为true。 | (a或b)是正确的。 |
不是逻辑非 | 用于反转其操作数的逻辑状态。 | Not(a和b)为假。 |
Python成员运算符
Python的成员资格运算符会测试序列中的成员资格,例如字符串,列表或元组。有两个成员运算符,如下所述:
[ 显示范例 ]
Operator | 描述 | Example |
---|---|---|
in | 如果找到指定序列中的变量,则评估为true,否则为false。 | x in y,如果x是序列y的成员,则结果为1。 |
not in | 如果找不到指定序列中的变量,则求值为true,否则为false。 | x不在y中,如果x不是序列y的成员,则此处的结果不为1。 |
Python身份运算符
身份运算符比较两个对象的内存位置。下面说明了两个标识运算符:
[ 显示范例 ]
Operator | 描述 | Example |
---|---|---|
is | 如果运算符两侧的变量指向同一个对象,则结果为true,否则为false。 | x是y,在这里 is 如果id(x)等于id(y),则结果为1。 |
is not | 如果运算符两侧的变量指向同一对象,则计算为false,否则为true。 | x不是y,这里 is not 如果id(x)不等于id(y),则结果为1。 |
Python运算符优先级
下表列出了从最高优先级到最低优先级的所有运算符。
[ 显示范例 ]
序号 | 运算符和说明 |
---|---|
1 |
** 求幂(提高幂) |
2 |
~ + - 补码,一元加号和减号(最后两个的方法名称为+ @和-@) |
3 |
* / % // 乘,除,模和底除 |
4 |
+ - 加减 |
5 |
>> << 左右位移 |
6 |
& 按位“与” |
7 |
^ | 按位异或(OR)和常规(OR) |
8 |
<= <>> = 比较运算符 |
9 |
<> ==!= 平等经营者 |
10 |
=%= / = // =-= + = * = ** = 赋值运算符 |
11 |
是不是 身份运算符 |
12 |
不在 会员经营者 |
13 |
不是或 逻辑运算符 |