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
时间: 2024-11-13 10:15:13