Python handles Boolean conditions using and
and or
in a special way. If the first Boolean expression of a two-part condition
using an and
evaluates to False
, then the second
condition is not evaluated. In the following example:
if x > 0 and y < 0:
...
if x
is less than 0 then the entire condition evaluates to False
(for and both conditions must be True
for the entire
expression to be True
), and the second condition involving y
is not evaluated at all.
With or
it is the opposite. In the following example:
if x > 0 or y < 0:
if x
is greater than 0 then the entire condition evaluates to
True
( for or only one condition must be True
for the entire expression to be True
), and the second
condition is not evaluated at all.
This short-circuiting of Boolean expressions is often not significant, but the order in which conditions are evaluated can cause problems. Think carefully about which conditions should be checked first.