python_运算符及优先级关系梳理

一、运算

1、算数运算符(7种)

+ - * / 
%  (取余数,注意负数的取余,要根据除数的正负,来套用公式判断余数是多少,如果被除数和除数都是负数,就在正常结果前面加上负号)
** (幂运算、次方)
// (地板除,取整除)

2、比较运算符(6种)

===是赋值;==是比较)
!=
>    <    >=    <=		

3、赋值运算符

=    +=    -=    *=    /=    %=    **=    //=    :=(py3.8 ,可在表达式内部为变量赋值)

4、位运算符[将数字看做二进制来进行计算]

"""
a = 15   b = 8

a = 0000 1111
b = 0000 1000

a&b = 0000 1000		# 8
a|b = 0000 1111		# 15
a^b = 0000 0111		# 7
~a  = 1001 0000		# -16 
	var = 15
	原码:  0000 1111
	反码:  0000 1111
	补码:  0000 1111
	按位非:1111 0000 
	补码:  1111 0000
	反码:  1000 1111
	原码:  1001 0000	# -16

res = 5 << 3	# 5*2的3次幂  40
res = 28 >> 3 	# 28//2的3次幂 3

"""

& 按位与		# 对应位同1则1,否则为0
| 按位或		# 对应位有1则1
^ 按位异或	# 对应位相异为1,相同为0
~ 按位取反	# 针对于补码进行操作,按位取反,包括符号位  公式 -(n+1)
<< 左移		# 实现乘法操作
>> 右移		# 实现除法操作

5、逻辑运算符

and - 布尔与 全真则真,一假则假
or - 布尔或 全假则假,一真则真
not - 布尔非 真变假,假变真

逻辑运算的优先级:

**( )> not > and > or**

res = 5 or 6 and 7		# 5
res = (5 or 6) and 7	# 7
res = not(5 or 6) and 7	# False
res = 1 > 2 or 3 < 4 and 5 > 10 or 11 < 12 and 13 > 16	# False
	res = False or True and False or True and False
	res = False or False or False
	res = False

逻辑短路现象:

>>> True or print(111)		or 一真则真 直接输出第一个真的,后面不执行了
True

>>> False and print(111)	and 一假则假 
False

print(111) or True		# print是内置的函数,函数内部返回的是None,功能是打印,这两者并不冲突

6、成员运算符 [针对于容器型数据]

in		判断序列中有没有某值
not in

7、身份运算符

is		判断两个标识符是不是引用自一个对象
is not	检测两个数据在内存中是不是同一个值

二、总结

1、个别运算符

优先级最高的是** 幂运算
优先级最低的是= 赋值运算
( )可以提升运算的优先级

2、整体来讲 一元运算符 > 二元运算符

一元运算符: 同一时间只操作一个值 - ~
二元运算符: 同一时间操作两个值 + - * /

3、同一层级

逻辑: ( )> not > and > or
算数: 乘除 > 加减
位运算: (<< >> ) > & > ^ > |

4、其他情况:

算位比身成逻,赋值运算收尾(赋值运算符用来将算好的值赋值给等号左侧变量,做收尾工作)
算术运算符(±*/) > 位运算符(&^|<<>>) > 比较运算符(=<>>=<=) > 身份运算符(is isnot) > 成员运算符(in notin) > 逻辑运算符(and or not)

res = 5 + 5 << 6 // 3 is 40 and False

res =5 + 5) << (6 // 3) is 40 and False

10 << 2 is 40 and True

	40 is 40 and True
	
	True and True
	
	True
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值