Python not and or

Posted xiaojinniu425

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python not and or相关的知识,希望对你有一定的参考价值。

刷题时候,有道题目的答案是


return(num and (num % 9 or 9))

 看的有点懵逼,看来解释如下:

1.首先,’and’、’or’、’not’的优先级是not>and>or。
2.其次,逻辑运算符and和or也称作断路运算符或者惰性求值:它们的参数从左向右解析,一旦结果可以确定就停止。在and语句中,如果每一个表达式都不假的话,返回最后一个,如果有一个为假,那么返回假。在or语句中,只要有一个表达式不为假,那么返回这个表达式的值,只有所有都为假才返回假。
3.总之,碰到and就往后匹配,直到遇到假或匹配到末尾。碰到or,如果or左边为真则返回左边,如果左边为假,则继续匹配右边的参数。

>>> 1 or 0
1
>>> 0 or 1
1
>>> 7 or 9
7
>>> 1 and 88
88
>>> 0 and 88
0

 or从左往右,返回第一个不是0的

and从左往右,只要有一个是0就返回0,如果全都不是0 ,返回最右边的

 


以上是关于Python not and or的主要内容,如果未能解决你的问题,请参考以下文章

Python not and or

Python3逻辑运算符not?

python中and、or和not 三个逻辑运算符,一直理解不了,求帮助!

python and or not 优先级

python-逻辑运算:not\and\or和布尔值:True\False

Python 运算符练习 not and or