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

`a = b or c`与`a = (b or c)`等效。

括号优先操作

>>> b = (1+2)*3
>>> b
9