python学习之运算表达式优先级
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习之运算表达式优先级相关的知识,希望对你有一定的参考价值。
python中,有变量、值和运算符参与的语句叫做表达式。
比如:
#字符串表达式
"hello"
#运算表达式
2+3
#赋值表达式
test = "hello"
#变量表达式
test
运算符优先级
运算符 | 描述 |
---|---|
lambda | Lambda表达式 |
or | 布尔“或” |
and | 布尔“与” |
not x | 布尔“非” |
in,not in | 成员测试 |
is,is not | 同一性测试 |
<,<=,>,>=,!=,== | 比较 |
| | 按位或 |
^ | 按位异或 |
& | 按位与 |
<<,>> | 移位 |
+,- | 加法与减法 |
*,/,% | 乘法、除法与取余 |
+x,-x | 正负号 |
~x | 按位翻转 |
** | 指数 |
x.attribute | 属性参考 |
x[index] | 下标 |
x[index:index] | 寻址段 |
f(arguments...) | 函数调用 |
(experession,...) | 绑定或元组显示 |
[expression,...] | 列表显示 |
{key:datum,...} | 字典显示 |
‘expression,...‘ | 字符串转换 |
关于移位操作
右移:右移一位表示除以2
>>> 8>>2
2
>>> 8>>3
1
>>> 8>>4
0
这里,移位数是>>右边的数,被移位数是>>左边的数。
左移:左移一位表示乘以2
>>> 3<<4
48
这里,移位数是<<右边的数,被移位数是<<左边的数。
总结:移位数总是位于移位符号(<<或者>>)的右边,被移位数总是位于移位符号的左边。
优先级
运算符优先级按照上表由低到高。
其他优先级如下:
#以下优先级排名从高到低,在同一运算中,先执行优先级高的再执行低的,以此类推。
#Top 1:函数调用、寻址、下标
#Top 2:幂运算**
priorityNumber=2*2**3
print priorityNumber #输出结果:16
#Top 3:翻转运算~
#Top 4:正负号
print 1+2*-3 #输出结果:-5
#Top 5:*、/、%
print 2+1*2/5 #输出结果:2
#Top 6:+、-
print 3<<2+1 #输出结果:24
#Top 7:<<、>>
#Top 8:按位&、^、|
#Top 9:比较运算符
priority=2*3+2<=2+1*7
print priority #输出结果:True
#Top 10:逻辑的not and or
#Top 11:lambda表达式
一般操作,由左到右;赋值操作,由右到左。
>>> a = 1+3
>>> a
4
括号优先操作
>>> b = (1+2)*3
>>> b
9
以上是关于python学习之运算表达式优先级的主要内容,如果未能解决你的问题,请参考以下文章