码迷,mamicode.com
首页 > 编程语言 > 详细

Python not and or

时间:2018-07-15 13:49:55      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:span   逻辑   col   解析   and   div   pre   color   第一个   

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


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

标签:span   逻辑   col   解析   and   div   pre   color   第一个   

原文地址:https://www.cnblogs.com/xiaojinniu425/p/9313288.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!