Python的逻辑运算符and和or会返回参与运算的真或假的对象,即and和or运算符总是返回参与运算的对象,而不是True或False。
Python在计算and运算时,总是按从左到右的顺序计算。在找到第一个为假的对象时,返回该对象,即使右侧还有需要计算的对象,计算都结束。这种计算方式称为短路计算。如果参与运算的对象都为真,则返回最后一个为真的对象。
or运算同样执行短路计算,在找到第一个为真的对象时,返回该对象,计算结束。
>>> 0 and 2
0
>>> [] and 2
[]
>>> 2 and {}
{}
>>> [] and {}
[]
>>> 2 and 5
5
>>> 5 and 2
2
>>> 0 or 2
2
>>> 2 or []
2
>>> False or 5
5
>>> [] or {}
{}
>>> {} or False or []
[]