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.