Any object can be tested for truth value, for use in an if or
while condition or as operand of the Boolean operations below.
The following values are considered false:
None
0, 0L, 0.0.'', (), [].{}.__nonzero__() or __len__() method, when that
method returns zero.
All other values are considered true -- so objects of many types are always true.
Operations and built-in functions that have a Boolean result always
return 0 for false and 1 for true, unless otherwise
stated. (Important exception: the Boolean operations `or' and
`and' always return one of their operands.)