Python 运算符

我们将在这一节里介绍 Python 运算符的相关知识。
运算符是对操作数 (值或变量) 执行特定操作的特殊符号, 例如, 在 a + b
中, +
是操作变量 a 和 b 的运算符, 这些变量称为操作数。
下面是 Python 运算符的一些类型:
Python 算术运算符
算术运算符对变量进行加法、减法、乘法等算术运算的运算符。
以下表格列出了 Python 算术运算符以及示例:
运算符 | 描述 | 例子 |
---|---|---|
+ | 加法运算 | a + b , +a |
- | 减法运算 | a - b , -a |
* | 乘法运算 | a * b |
/ | 除法运算,结果总是返回浮点类型。 | a / b |
% | 求余运算 | a % b |
// | 取整除,结果返回舍去小数部分的整数 | a // b |
** | 幂运算,返回 x 的 y 次方 | a ** b |
Python 算术运算符实例
下面的代码中是, 算术运算符用于两个操作数的例子:
a = 24 b = 7 print("a + b =", a + b) print("a - b =", a - b) print("a * b =", a * b) print("a / b =", a / b) print("a // b =", a // b) print("a ** b =", a ** b)
a + b = 31 a - b = 17 a * b = 168 a / b = 3.4285714285714284 a // b = 3 a ** b = 4586471424
Python 比较运算符
比较运算符是用来比较两个值大小的运算符,运算符的结果是二选一,True
或是 False
。
下面列举出 Python 中的比较运算符:
运算符 | 描述 | 例子 |
---|---|---|
> | 大于 - 比较 a 是否大于 b | a > b |
< | 等于 - 比较 a 是否小于 b | a < b |
== | 等于 - 比较两变量是否相等 | a == b |
!= | 不等于 - 比较两变量是否不相等 | a != b |
>= | 大于等于 - 比较 a 是否大于或等于 b | a >= b |
<= | 小于等于 - 比较 a 是否小于或等于 b | a <= b |
Python 比较运算符实例
下面举例来说明 Python 比较运算符的应用。
a = 12 b = 24 print("a > b is ", a > b) print("a < b is ", a < b) print("a == b is ", a == b) print("a != b is ", a != b) print("a >= b is ", a >= b) print("a <= b is ", a <= b)
a > b is False a < b is True a == b is False a != b is True a >= b is False a <= b is True
Python 逻辑运算符
运算符 | 描述 | 例子 |
---|---|---|
and | 与运算 - 如果两侧逻辑都为 True ,则结果为 True ,否则为 False | a and b |
or | 或运算 - 如果两侧逻辑有一个为 True ,则结果为 True ,否则为 False | a or b |
not | 非运算 - 如果 a 为 True ,返回 False ; 如果 a 为 False ,返回 True | not a |
Python 逻辑运算符实例
下面举例来说明 Python 逻辑运算符的具体应用。
a = False b = True print("a and b =", a and b) print("a or b =", a or b) print("not b =", not b)
a and b = False a or b = True not b = False
Python 位运算符
Python 位运算符执行位运算,其中的操作数是执行位运算的二进制数字。
下面列出来 Python 中所有的位运算符,为了方便说明,我们取 a = 4
(0b100
) 以及 b = 5
(0b101
):
运算符 | 描述 | 例子 |
---|---|---|
& | 位与操作符 - 当两侧数字在该位上都是 1 的时候,结果该位也为 1 ,否则为 0 | a &b = 4 |
| | 位或操作符 - 当两侧数字在该位上只要有一个是 1 的时候,结果该位为 1 ,否则为 0 | a | b = 5 |
~ | 位取反操作符 - 对操作数进行按位取反操作,1 变成 0 ,0 变成 1 | ~a = -5 |
^ | 位异或操作符 - 当两侧数字对应位二进制相异时,结果为 1 | a^b= 1 |
>> | 右移操作符 - 将 >> 左侧的数字右移若干位,左侧补齐 0 | a >>2= 1 |
<< | 左移操作符 - 将 >> 左侧的数字左移若干位,右侧补 0 ,左侧高位数舍弃 | a<< 2 =16 |
Python 赋值运算符
赋值运算符 =
为变量分配数值。赋值运算符对变量进行初始化,比如 x = 1
将数值 1
赋值给变量 x
。
在 Python 中, 有复合赋值运算符, 它们是将算术运算符和赋值运算符相组合, 或者是将按位和赋值运算符相组合。
比如,x += 2
就是一个复合赋值语句, 其中 2 与变量 x
相加, 结果存储在变量 x
中。
下面是赋值运算符以及复合赋值运算符的列表。
运算符 | 例子 | 等效于 |
---|---|---|
= | a = 8 | a = 8 |
+= | a += 8 | a = a + 8 |
-= | a -= 8 | a = a - 8 |
*= | a *= 8 | a = a * 8 |
/= | a /= 8 | a = a / 8 |
%= | a %= 8 | a = a % 8 |
/= | a /= 8 | a = a / 8 |
*= | a *= 8 | a = a * 8 |
&= | a &= 8 | a = a & 8 |
` | =` | `a |
^= | a ^= 8 | a = a ^ 8 |
>>= | a >>= 8 | a = a >> 8 |
<<= | a <<= 8 | a = a << 8 |
Python 特殊运算符
在 Python 编程中, 有一些运算符具有特殊的含义, 称为特殊运算符, 例如身份运算符以及成员运算符等。In Python
身份运算符
在 Python 中, 运算符 is
和 is not
被称为身份运算符。身份运算符用于确定两个变量是否是内存的同一部分。所以两个变量是相等的, 两个变量是相同的是两个不同的语句。两个变量假如具有相同的数值,那它们两个数值相等,但并不是同一个 Python 对象。
运算符 | 描述 |
---|---|
is | 两个变量具有相同的内存位置 |
is not | 两个变量不是指向相同的内存位置 |
Python 身份运算符实例
下面具体来说明下 Python 身份运算符的含义,
>>> a = [1] >>> b = [1] >>> c = a >>> a is b False >>> a is c True
a
和 b
虽然具有相同的数据,都是列表 [1]
,但它们指向的不是同一个内存对象,所以 a is not b
。但 c=a
将 a
的内存地址赋予了 c
的内存地址,所有它们指向了同一个 Python 对象,所以 a is c
是成立的。你可以用 id(x)
内置函数来具体查看变量的内存地址
>>> id(a), id(b), id(c) (87402760L, 87404296L, 87402760L)
从结果也能看出来,a
和 c
具有相同的内存地址,并且同 b
不同。
Python 成员运算符
在 Python 中,运算符 in
和 not in
被称为成员运算符。成员运算符用于检查变量是否位于序列(列表,元组,字符串和字典)中。所以两个变量相等并且两个变量相同是两个不同的语句。
对 Python 字典进行运算符操作的时候,它只能检查字典中的键,而不是检查值。
运算符 | 描述 |
---|---|
in | 当 in 前面的变量在后面的序列中时,结果为 True |
not in | 当 in 前面的变量不在后面的序列中时,结果为 True |
Python 成员运算符实例
>>> a = 'Python Programming' >>> print('y' in a) True >>> print('b' not in a) True >>> print('b' in a) False >>> x = {1:2;3:4} >>> 1 in a True >>> 2 in a False
y
存在于序列 a
(字符串)中,因此 y in a
返回 True。类似地,b
不存在 a
中,所以返回 False
。
字典 x
具有两个键 1
和 3
,它们的值分别是 2
和 4
。1
是字典的键,所以 1 in a
成立;虽然 2
是字典中某个键的值,但并不是键,所以 2 in a
并不成立。