天天看点

python运算符优先级及部分运算

在python里面,有很多运算符,比如:算术运算符、赋值运算符、比较运算符、逻辑运算符、成员运算符、身份运算符和位运算符等。这里主要来看看这些运算符的优先级:从上到下优先级依次递减。

优先顺序 运算符 说明
1 ** 指数(次幂运算)
2 ~ + - 取反、正号运算和负号运算
3 * / % // 乘、除、取模和取整除
4 + - 加法、减法
5 >> << 右移,左移位运算符
6 & 按位与
7 ^ | 按位异或和按位或
8 <= < > >= 比较运算符
9 == != 等于和不等于运算符
10 = %= /= //= -= += *= **= 赋值运算符
11 is is not 身份运算符
12 in not in 成员运算符
13 not or and 逻辑运算符

1-4为算术运算符,5-7为位运算符,其他的皆有标明。

小试牛刀

先来热热身,做道题吧:

小提示:做题的时候记得看看上面的优先级表哦~

设a=1,b=2,c=3,d=4,表达式a>b and c<=d or 2*a>c 的值是?
A.False     B.True      C.-1        D.1
      

先不要偷看答案哦~自己试着做做吧!

~

正确答案是A。这里优先级最高的是​

​*​

​​,所以先计算​

​2*a=2​

​​。其次优先级是​

​<= < > >=​

​​,优先级最低的是​

​not or and​

​,同一等级级别一样。

(1)计算优先级<=  <  >  >=
a>b:1>2     False
c<=d:3<=4   True  
2*a>c:2>3   False
原式可写为:False and True or False    
(2)计算优先级and  or
and和or同等优先级,从左到右依次执行。
False and True-->False
False or False-->False
所以正确选项为A.False
      

易错题

不妨来做道题练练手,下面这道题,做错的概率可是很高的哦。不如你来试试手:

假设X=3,Y=5,Z=2,则表达式(X^2+Y)/Z的值是?
A.1     B.5     C.3     D.2.0
      

注意:这里的​

​^​

​是异或的标志!

做完之前不许偷看答案哦~

正确答案是D。做对了吗?

没做对就来看看解析吧~

本题优先级从高到低依次为:小括号()-->加法+-->异或^-->除号/

(1)先算小括号里面的加法:2+Y=2+5=7
(2)7转换为2进制为:0111
(3)X=3,3转换为2进制为0011
(4)7和3进行异或运算:
0111
0011
------
0100-->十进制为4
(5)4/Z=4/2=2
所以D选项正确。
      

你get到了吗?

还没捋清楚的小伙伴不妨试试自己做做这道题弄不懂的话再百度哦

下面语句的输出结果是_____
not(3>5 and 5<7 or 8+9<23)
      

参考文献