Операторите 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()