短路逻辑和运算符优先级

短路逻辑:从左往右,只有当第一个操作数的值无法确定逻辑运算的结果时,才对第二个操作数进行求值。

即,对于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...}:绑定或元祖显示,列表显示,集合显示

你可能感兴趣的:(短路逻辑和运算符优先级)