短路逻辑:从左往右,只有当第一个操作数的值无法确定逻辑运算的结果时,才对第二个操作数进行求值。
即,对于AND运算符来说,只有左右两边同时为True时,结果才能为True
例如: 3 and 4,结果为4; 3 or 4,结果为3
理由,数值3时,结果为True,对于and来说还要看and后面的值是否为True,对于or来说则不需要,所以3 or 4直接返回了3
例如:0 and 3,结果为0; 0 or 4,结果为4
理由,数值0时,结果为False,由此可见整体结果都为False,所以不需要判断and后的值了,可直接返回数值0;or关系时,只要判断有一个数值为True,就可返回为第一个为True的数值
运算符优先级
列表运算符优先级从低到高排序,左边为运算符,右边为描述
1. lambada:Lambda表达式
2. if-else:条件表达式
3. or:布尔‘或’
4. and:布尔‘与’
5. not x:布尔‘非’
6. is,not in,is,is not,<,<=,>,>=,!=,==:成员测试,同一性测试,比较
7. |:按位或
8. ^:按位异或
9. &:按位与
10. <<,>>:移位
11. +,-:加法,减法
12. *,@,/,//,%:乘法,矩阵乘法,除法,地板除,取余数
13. +x,-x, ~x:正好,负号,按位翻转
14. **:指数
15. await x:Await表达式
16. x[index], x[index, index], x(arguments...),x attribute:下标,切片,函数调用,属性引用
17. (expressions...),[expressions...],{key:value...},{expressions...}:绑定或元祖显示,列表显示,集合显示