python中的逻辑运算符 and or not 和其他的语言是相同的这些在平时的代码逻辑中很容易使用到,学习阶段阅读别人代码也会遇到问题
理解记忆:
and 就是找假 找不到假返回最后一个
or 就是找真 找不到真返回最后一个
eg:
- A and B
>>>'' and 12
''
>>>1 and 2
'2'
第一个操作数为假,就返回第一个操作数;不然返回第二个操作数
(记:找假 )
- A or B
>>>'' or 12
22
>>>1 or 2
'1'
第一个操作数为真,就返回第一个操作数; 不然返回第二个操作数
(记:找真)
- A and B and C
>>>12 and 12 and ''
''
>>>[] and 'a' and 'b'
[]
>>>12 and 2 and 'sss'
'sss'
返回值就是从左到右第一个为假的值 都不为假 返回最后一个数
- A or B or C
>>>12 or 12 or ''
12
>>>[] or 'a' or 'b'
'a'
>>>[] or '' or {}
{}
返回值就是从左到右第一个不为假的值 都为假 返回最后一个数
- not A
>>>not 12
False
>>>not ''
True
取反 真变为假 假变为真
重点
- and or
这种前面判断再与后面判断 这种很容易写在赋值语句中:
a= b and 1 or 0 如果b为真 a=1 否则a=0
>>>'' and 1 or 0
0 #前面为假 结果为0
>>>'1' and 1 or 0
1 #前面为真 结果为1
大家加油