# Python Control Flow: Boolean Expressions for Conditions

The three Boolean operators (and, or, not) are used to compare Boolean values. Like comparison operators, they evaluate these expressions down to a Boolean value.

## AND

The and operator always takes two Boolean values. The and operator evaluates an expression to True if both Boolean values are True; otherwise, it evaluates to False.

Examples

```True and True
-> True

True and False
-> False

False and True
-> False

False and False
-> False```

## OR

The or operator also takes two Boolean values. The or operator evaluates an expression to True if either of the two Boolean values is True.

```True and True
-> True

True and False
-> True

False and True
-> True

False and False
-> False```

## NOT

Unlike and and or, the not operator operates on only one Boolean value. The not operator simply evaluates to the opposite Boolean value

```not True
-> False

not False
-> True```

## Mixing Boolean and Comparison Operators

We can make more complicated expressions by combining our Boolean and Comparison Operators. We have to make sure that we evaluate down to either True or False.

```Examples
(4 < 5) and (5<6)
-> True

(4 < 5) and (9<6)
-> False

(4 < 5) or  (10<6)
-> True```

The computer will evaluate the left expression first, and then it will evaluate the right expression. When it knows the Boolean value for each it will then evaluate the whole expression down to one.

Don’t use the actual words True and False as conditions or as comparison in the conditions.

Example:

```if True:
print("This will always run")

if False:
print("This will never run")```
```if some_condition == True:
print("This isn't right")

if some_condition:
print("This is better")```

The variable itself is the the boolean expression. It’s just extra code.

To check if something is False we can just use the NOT operator

```if not some_condition:
print("This statement is false")```