0,‘’,“”,NONE都是假值。0和1对立,1代表真值。在python中一切都是对象,都是数据结构?空的数据结构为False假,相反不是空的数据结果则为True真。
and和or执行布尔逻辑运算,但是不返回布尔值,返回实际进行比较的值之一。
and:
>>> 'first'and'second' #真and真
'second'
>>> ''and'second' #假and真
''
>>> 'first'and''#真and假
''
>>> ''and 0 # 假and假
''
前后两个值用and,如果两个都为真,返回第二个值;如果某个值为假,则返回顺序上第一个出现为假值的值(即第一个值是假,则返回第一个值;第一个是真值,第二个是假,则返回第二个值)。
or:
>>> ''or 0 #假or假
0
>>> 'first'or'second' #真or真
'first'
>>> 'first'or'' #真or假
'first'
>>> ''or'second' #假or真
'second'
前后两个值用or时,如果两个都为假,返回第二个值;如果某个值为真,则返回顺序上第一个为真值的值(不管是真真,还是真假,还是假真)
and-or:
>>> 1 and 2 or 3
2
>>> 1 and 2 or 0
2
>>> 0 and 2 or 3
3
>>> 1 and 0 or 3
3
根据上述and和or的特性即可顺序推导出结果值。有意思的是,and-or语法中,结果永不会为第一个数。