本文的开发环境为win10+Python 3.6.5。我们常用的and or not三个操作符其实是有返回值的,今天讨论一下它们的返回值。
python的真值
首先我们需要明确一点,python里面 常见的0,空列表[],空字典{},空字符串'' 等等空的容器,None这些都是在python里面当作假值来处理的,当然你定义的类,里面如果处理的特殊的魔术函数,也可以进行真假判断(会开专门的文章进行说明,本文讨论一些python内置的假值),其它的比如非0的数,非空字符串都是真值。
and的返回值
我们知道and用于判断前后两个表达式的值,必须全部为真,and才返回真,但是这里的真,不是说True,而是从左往右的最后一个表达式的值,比如a = 1; b = 2; 那么a and b返回的是最后一个表达式b的值2:
1
当然如果中间有任何一个表达式不为真,那么就返回这个表达式的值,后面的就不再进行判断了:
2
or的返回值
可以用and进行类比,or判断的是前后两个表达式的值中有一个为真,则返回真,否则返回假,当然这里的真假也不是指的True和False,而是or前后表达式的值,如果or中有任何一个为真,则返回它的值,后面的不在计算,如果or表达式中都没有真,则返回最后一个表达式的值:
3
4
not的返回值
not用于判断其后的表达式的真假,not不同于and 和 or,它的返回值只有True和False:
5
领取专属 10元无门槛券
私享最新 技术干货