首先,‘and’、‘or’和‘not’的优先级是not>and>or。
同一优先级从左往右计算。
先说非运算,Python的非运算与这些语言相比,并没有特别的地方。not只有两个返回值,True和False。在Python中,真值为假的对象,包括False,None,数字0,空字符串以及空的容器类型。除此以外的任何对象均为真。
【python|python 逻辑运算及奇怪的返回值(not,and,or)】接下来是与运算,Python的与(and)运算的规则是
若左边的表达式为真,则返回右边表达式的值
否则,返回左边表达式的值
最后再来说或运算,Python的或(or)运算的规则是
若左边的表达式为真,则返回左边的表达式的值
否则,返回右边的表达式的值
用代码来感受一下吧:
文章图片
文章图片
那现在我们再加入优先级相关的混合运算:
文章图片
#首先 not 的优先级最高那么not 8 返回False
#(False or 3 and 4 or 2 and 0 or 9 and 7 )
#接下来的优先级是and
#(False or 4 or 0 or )
#最后or 返回真值 4
推荐阅读
- Android|Android 知识点 030 —— Handler,Thread,HandlerThread
- Data|单链表的增删查改
- 算法|递归与分治
- Data|判断四个点是否可以构成矩形(优雅的解法!!!)
- c++|算法导论第八章 -- 计数排序
- Data|数据结构与算法笔记: 贪心策略之BST&BBST, Hashtable+Dictionary+Map, Priority Queue~Heap, Minium Spanning Tree
- Data|[转载] 线性表的数组实现
- python|Python系统调用——运行其他程序