# Conditional Execution in Python (Part I)

**Boolean Expressions**

A boolean expression is an expression that is either true or false. The following examples use the operator ==, which compares two operands and produces *True* if they are equal and *False* otherwise.

>>> 5 == 5

True

>>> 5 == 6

False

True and False are special values that belong to the type bool; they are not strings:

>>> type(True)

<type ‘bool’>

>>> type(False)

<type ‘bool’>

The == operator is one of the comparison operators; the others are:

x != y # x is not equal to y

x > y # x is greater than y

x < y # x is less than y

x >= y # x is greater than or equal to y

x <= y # x is less than or equal to y

x is y # x is the same as y

x is not y # x is not the same as y

A common error is to use a single equal sign (=) instead of a double equal sign (==). Remember that = is an assignment operator and == is a comparison operator. There is no such thing as =< or =>.

**Logical Operators**

There are three logical operators: *and*, *or*, and *not*. The semantics (meaning) of these operators is similar to their meaning in English. For example,

x > 0 and x < 10 is true only if x is greater than 0 and less than 10.

n%2 == 0 or n%3 == 0 is true if either of the conditions is true, that is, if the number is divisible by 2 or 3.

Finally, the not operator negates a boolean expression, so not (x > y) is true if x > y is false, that is, if x is less than or equal to y.