Операторите and и or
Operations and built-in functions that have a Boolean result always return 0 or False for false and 1 or True for true, unless otherwise stated. (Important exception: the Boolean operations or and and always return one of their operands.)
Което значи, че например:
>>> None or [1,2,3]
<<< [1, 2, 3]
Не изглежда много полезно? Нека имаме функции foo() и bar(). Искаме да върнем стойността върната от foo, но ако тя е None, False или нещо друго, което се оценява до False, да fallback-нем към резултата от bar:
>>> return foo() or bar()
С оператора and нещата са обратни. Ако foo и bar връщат нещо, което се оценява до истина, ще получим резултата на bar. В противен случай - ще получим първия "негативен" резултат:
>>> return foo() and bar()
