Skip to content Skip to sidebar Skip to footer

Boolean 'and' In Python

Can somebody explain the reasoning behind the following tests ?? >>> 1 and True True >>> {'foo': 'Foo'} and True True >>> {} and True {} >>>

Solution 1:

Python doesn't have a boolean and or boolean or. Its and and or operators are coalescing, which means that they return the first non-true or true operand, or the second operand.

Solution 2:

In the context of Boolean operations, and also when expressions are used by control flow statements, the following values are interpreted as false: False, None, numeric zero of all types, and empty strings and containers (including strings, tuples, lists, dictionaries, sets and frozensets). All other values are interpreted as true.

The expression x and y first evaluates x; if x is false, its value is returned; otherwise, y is evaluated and the resulting value is returned.

The expression x or y first evaluates x; if x is true, its value is returned; otherwise, y is evaluated and the resulting value is returned.

For further reference read more on Boolean operations: http://docs.python.org/reference/expressions.html#boolean-operations

Post a Comment for "Boolean 'and' In Python"