算数运算符 + - * / ** % /表示自然除,结果是浮点数。//为整除。python2.x版本/和//都是整除。 位运算符 | ~ ^ 和的运算:乘除2的整数倍。例如:162 相当于 16//2**2 , 42 相当于4*2**2 比较运算符
算数运算符
- + - * / ** %
- /表示自然除,结果是浮点数。//为整除。python2.x版本/和//都是整除。
位运算符
- & | ~ ^ << >>
- <<和>>的运算:乘除2的整数倍。例如:16>>2 相当于 16//2**2 , 4<<2 相当于4*2**2
比较运算符
- == != > < >= <= 返回boolean值
- 链式比较操作 4>x >=2
逻辑运算符
- 与 或 非 and or not
- 短路:
- and 如果第一个表达式为False,后面不用计算了,都为False,可以将and看作是做“乘法运算“。
- or如果第一个表达式返回True,后面不用计算了,都为True,可以将or看作是做“加法运算”。
赋值运算符
- 等号:a = 5
- += -= *= /= %=
- x = y = z = 1
成员运算符
- in、not in
身份运算符
- is、 is not
运算符优先级(由高到低)
运算符 描述 ‘expr‘ 字符串转换 {key:expr,...} 字典 [expr1,expr2...] 列表 (expr1,expr2,...) 元组 function(expr,expr2,...) 函数调用 x[start:stop:step] 切片 x[index] 下标索引取值 x.attribute 属性引用 ~x 按位取反 +x, -x 正,负 x**y 幂 x*y, x/y, x%y乘,除,取模
x+y, x-y加,减
x << y, x>>y 位移 x&y 按位与 x^y 按位异或 x|y 按位或x < y, x <= y, x==y,
x!=y, x>=y, x>y
比较 x is y, x is not y 等同测试 x in y, x not in y 成员判断 not x 逻辑否 x and y 逻辑与 x or y 逻辑或 lambda arg,....:expr Lambda匿名函数优先级:算数运算符 > 位运算符 > 身份运算符 > 成员运算符 > 逻辑运算符
逻辑与或和按位与或的区别:
1、相似点:
逻辑与和按位与的执行结果是一样的;逻辑或和按位或的执行结果也是一样的。
2、不同点:
逻辑与和逻辑或执行时,只需要判断第一个条件的真假就能得出整个条件的真假,不需要判断第二个条件;
按位与和按位或执行时,需要判断第一个条件的真假就能得出整个条件的真假,但是还需要对后面的条件进行判断,并且最后把这些条件的结果结合起来才返回 整个条件的真假。
由此看来,逻辑与或的执行效率比按位与或的效率高。