Python-操作符总结(逻辑、位、算术、比较、赋值操作符及操作符优先级)_python位逻辑

87 阅读2分钟

逻辑操作符/布尔运算

假设变量 a 为 10, b为 20:

逻辑操作符

运算符逻辑表达式描述实例
andx and y"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。(a and b) 返回 20。
orx or y"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。(a or b) 返回 10。
notnot x"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。not(a and b) 返回 False

一般情况下,a、b为表达式。

位操作符

假设变量 a 为 60,b 为 13:

二进制补码表示 | a | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | | b | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 |

操作符描述实例
&按位与:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0(a & b) 输出结果 12 ,二进制解释: 0000 1100
按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。(ab) 输出结果 61 ,二进制解释: 0011 1101
按位异或运算符:当两对应的二进位不同时,结果为1(a ^ b) 输出结果 49 ,二进制解释: 0011 0001
~按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1(~a ) 输出结果 -61 ,二进制解释: 1100 0011(一个有符号二进制数的补码形式),或者-11 1101。
<<左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。a << 2 输出结果 240 ,二进制解释: 1111 0000
>>右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数a >> 2 输出结果 15 ,二进制解释: 0000 1111

标准算术操作符

a,b为数字型,c为字符串

算术操作符

操作符描述实例
+两个树相加或对象拼接a + b
-得到负数或是一个数减去另一个数a - b
*两个数相乘或对象重复a * b
/x 除以 yb / a
%取模 - 返回除法的余数b % a
**幂 - 返回x的y次幂a**b
//取整除 - 向下取接近商的整数
>>> 9//2
4
>>> -9//2
-5

|

比较操作符

比较操作符

操作符描述实例
==比较两个对象是否相等(调用__eq__()函数)a == b
!=比较两个对象是否不相等a != b
返回x是否大于ya > b
<返回x是否小于y。a < b
>=返回x是否大于等于y。a >= b
<=返回x是否小于等于y。a <= b
is比较两个对象是否相等(调用id()函数)a is b
is not比较两个对象是否不相等a is not b

比较单例模式的对象,例如,None时,应使用is 或is not,参考Python-Python编码规范(PEP8)

赋值操作符

运算符描述实例
=简单的赋值运算符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

操作符优先级

操作符优先级

运算符描述
**幂 (最高优先级)
~ 、+、 -按位翻转, 一元加号和减号
* 、/、 %、 //乘,除,求余数和取整除
+ 、-加法和减法
>> 、<<右移和左移操作符
&位 'AND'
^ 、位操作符
<、=< 、>、>=比较操作符
==、!=等于比较操作符
=、%=、/=、//=、-=、+=、*=、**=赋值操作符
is、is not身份比较操作符
in、not in成员操作符
not、and、or逻辑操作符

接下来,我会将操作符穿插在其他文章中进行展示。

更多python相关内容:【python总结】python学习框架梳理