3.3 运算符
(以下假设变量 a=10,变量 b=21)
【算数运算符】:
运算符 | 描述 | 实例 |
---|---|---|
+ | 加 , 两个对象相加 | a + b 输出结果 31 |
- | 减 , 得到负数或是一个数减去另一个数 | a - b 输出结果 -11 |
* | 乘 , 两个数相乘或是返回一个被重复若干次的字符串 | a * b 输出结果 210 |
/ | 除 , x 除以 y | b / a 输出结果 2.1 |
% | 取模 , 返回除法的余数 | b % a 输出结果 1 |
** | 幂 , 返回x的y次幂 | a**b 为10的21次方 |
// | 取整除 , 往小的方向取整数 | >>> 9//2→4 >>> -9//2→-5 |
【比较运算符】:
运算符 | 描述 | 实例 |
---|---|---|
== | 等于,返回对象是否相等 | (a == b) 返回 False |
!= | 不等于,返回个对象是否不相等 | (a != b) 返回 True |
> | 大于,返回x是否大于y | (a > b) 返回 False |
< | 小于,返回x是否小于y | (a < b) 返回 True |
>= | 大于等于,返回x是否大于等于y | (a >= b) 返回 False |
<= | 小于等于,返回x是否小于等于y | (a <= b) 返回 True |
【赋值运算符】:
运算符 | 描述 | 实例 |
---|---|---|
= | 简单的赋值运算符 | c = a + b,将 a + b 的运算结果赋值为 c |
+= | 加法赋值运算符 | c += a 等效于 c = c + a |
-= | 减法赋值运算符 | c -= a 等效于 c = c - a |
*= | 乘法赋值运算符 | c *= a 等效于 c = c * a |
/= | 除法赋值运算符 | c /= a 等效于 c = c / a |
%= | 取模赋值运算符 | c %= a 等效于 c = c % a |
**= | 幂赋值运算符 | c **= a 等效于 c = c ** a |
//= | 取整除赋值运算符 | c //= a 等效于 c = c // a |
:= | 海象运算符(3.8版新增) | 同时进行赋值和返回赋值 |
【位运算符】:
位运算符是把数字看作二进制进行计算。
(以下假设变量 a = 60 → 0011 1100,变量 b = 13 → 0000 1101)
运算符 | 描述 | 实例 |
---|---|---|
& | 位与运算符,如果两个对应位都为1,结果位为1,否则为0 | (a & b) 输出结果 12 ,二进制为: 0000 1100 |
| | 位或运算符,只要两个对应位有一个为1,结果位为1 | (a | b) 输出结果 61 ,二进制为: 0011 1101 |
^ | 位异或运算符,当两个对应位相异时,结果位为1 | (a ^ b) 输出结果 49 ,二进制为: 0011 0001 |
~ | 位取反运算符,二进制位取反,把1变为0,把0变为1。~x 类似于 -x-1 | (~a ) 输出结果 -61 ,二进制为: 1100 0011, 在一个有符号二进制数的补码形式。 |
<< | 左移运算符,各二进位全部左移若干位 | a << 2 输出结果 240 ,二进制为: 1111 0000 |
>> | 右移动运算符,各二进位全部右移若干位 | a >> 2 输出结果 15 ,二进制为: 0000 1111 |
【逻辑运算符】:
(以下假设变量 a = 10, b = 20)
运算符 | 逻辑表达式 | 描述 | 实例 |
---|---|---|---|
and | x and y | 布尔"与",如果 x 为 False,x and y 返回 x 的值,否则返回 y 的计算值 | (a and b) 返回 20 |
or | x or y | 布尔"或",如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。 | (a or b) 返回 10 |
not | not x | 布尔"非",如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 | not(a and b) 返回 False |
【成员运算符】:
作用:在某序列(字符串、列表或元组)中搜索某成员是否存在
运算符 | 描述 | 实例 |
---|---|---|
in | 如果在指定的序列中找到值返回 True,否则返回 False。 | x 在 y 序列中 , 如果 x 在 y 序列中返回 True。 |
not in | 如果在指定的序列中没有找到值返回 True,否则返回 False。 | x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。 |
【身份运算符】:
作用:用于比较两个对象的存储单元
运算符 | 描述 | 实例 |
---|---|---|
is | is 是判断两个标识符是不是引用自一个对象 | x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False |
is not | is not 是判断两个标识符是不是引用自不同对象 | x is not y , 类似 id(x) != id(y)。如果引用的不是同一个对象则返回结果 True,否则返回 False |
注1: id() 函数用于获取对象内存地址
注2:is与==区别——is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。
注2示例
>>>a = [1, 2, 3]
>>> b = a
>>> b is a
True
>>> b == a
True
>>> b = a[:]
>>> b is a
False
>>> b == a
True
【运算符优先级】:
圆括号》调用》指数》正负非》乘除取余》加减》移位》位与》位异或》位或》比较运算》逻辑非》逻辑与》逻辑或》条件表达式》lambda表达式》赋值表达式