2、Python运算符与表达式

时间:2021-07-28 15:08:28

1、运算符

 >>>3+5
 8
 >>>3-5
 2
 >>>2*3
 6
 >>>2**3
 8                  #幂
 >>>4/2
 2.0                #除
 >>>4//2
 2                  #取整除
 >>>8%3
 2                  #取模
 >>>2<<2
 8                  #左移两比特: 0010(2) -> 1000(8)
 >>>11>>1
 5                  #右移一比特: 1011(11) -> 0101(5)
 >>>5&3
 1                  #按位与,101

                    #       ----
                    #       001   ,相同位两个都为1时才为1
 >>>5|3
 7                  #按位或,101

                    #       ----
                    #       111   ,相同位只要有一个为1就为1
 >>>5^3
 6                  #按位异或,101

                    #         ---
                    #         110   ,相同位不相同就为1,相同就为0
 >>>~5
 -6                 #按位翻转,公式-(x+1)
 >>>5<3
 False
 >>>5>3
 True
 >>>5<=3
 False
 >>>3==2
 False
 >>>3!=2
 True
 >>>not False
 True               #布尔非,not 2 -> False
 >>>1 and 2
 2                  #布尔与,X and Y ,先计算X,如果X的值为False,
                    #直接返回False不会计算Y,否则返回Y(短路计算)
 >>>1 or 2
 1                  #布尔或,X or Y ,先计算X,如果X的值为True,
                    #直接返回True不会计算Y,否则返回Y(短路计算)      

2、运算符优先级

运算符 描述
lambda Lambda表达式
or    布尔 或
and  布尔 与
not x 布尔 非
is,is not 成员测试
<,<=,>,>=,!=,== 比较
| 按位 或
^ 按位 异或
& 按位 与
<<,>> 移位
+,- 加 减
*,/,% 乘 除 取余
+X,-X 正负号
~X 按位翻转
** 指数
x.attribute 属性参考
X[index] 下标
f(arguments) 寻址段
(experession) 绑定或元组显示
[experession] 列表显示
{key:value} 字典显示
'str' 字符串转换