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 变成 00 变成 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 |= 8 a = a | 8
^= a ^= 8 a = a ^ 8
>>= a >>= 8 a = a >> 8
<<= a <<= 8 a = a << 8

Python 特殊运算符:

在 Python 编程中, 有一些运算符具有特殊的含义, 称为特殊运算符, 例如身份运算符以及成员运算符等。In Python

身份运算符:

在 Python 中, 运算符 isis not 被称为身份运算符。身份运算符用于确定两个变量是否是内存的同一部分。所以两个变量是相等的, 两个变量是相同的是两个不同的语句。两个变量假如具有相同的数值,那它们两个数值相等,但并不是同一个 Python 对象。

运算符 描述
is 两个变量具有相同的内存位置
is not 两个变量不是指向相同的内存位置

Python 身份运算符实例

下面具体来说明下 Python 身份运算符的含义,

>>> a = [1]
>>> b = [1]
>>> c = a
>>> a is b
False
>>> a is c
True

ab 虽然具有相同的数据,都是列表[1],但它们指向的不是同一个内存对象,所以 a is not b。但 c=aa 的内存地址赋予了 c 的内存地址,所有它们指向了同一个 Python 对象,所以 a is c 是成立的。你可以用 id(x) 内置函数来具体查看变量的内存地址

>>> id(a), id(b), id(c)
(87402760L, 87404296L, 87402760L)

从结果也能看出来,ac 具有相同的内存地址,并且同 b 不同。

Python 成员运算符:

在 Python 中,运算符 innot 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 具有两个键 13,它们的值分别是 241 是字典的键,所以 1 in a 成立;虽然 2 是字典中某个键的值,但并不是键,所以 2 in a 并不成立。