When writing code with comparisons it is often useful to group two or more comparisons into expressions.

In Python, as in other programming languages, we can do this using the boolean logic operators `and`, `or` and `not`.

## Boolean ‘and’

The `and` operator allows us to check if two or more conditions are met simultaneously.

The `and` operator returns `True` only if all expressions are `True`. In all other cases it returns `False`.

and True False
True True False
False False False

Here’s an example: we want to do something only if both values are bigger than `15`, otherwise we’ll do something else:

``````a = 17 # try different values here
b = 17
if a > 15 and b > 15:
print("do something")
else:
print("do something else")
``````

## Boolean ‘or’

The `or` operator allows us to check if at least one among several conditions is met.

The `or` operator returns `False` only if all expressions are `False`. In all other cases it returns `True`.

or True False
True True True
False True False

In the following example, we’ll do something if at least one value is bigger than `15`, otherwise we’ll do something else:

``````a = 17 # try different values here
b = 17
if a > 15 or b > 15:
print("do something")
else:
print("do something else")
``````

## Boolean ‘not’

The `not` operator simply inverts the value of an expression:

• if the expression is `False`, it will be turned into `True`
• if it is `True`, it will be turned into `False`

Here’s a simple example:

``````a = True
print(a)
``````
``````>>> True
``````
``````print(not a)
``````
``````>>> False
``````

And here’s a more realistic example, combining `not` and list membership testing:

``````L1 = ['a', 'b', 'c', 'd', 'e', 'f']
L2 = ['a', 'e', 'i', 'o', 'u']
for char in L1:
if char not in L2:
print(char, end=" ")
``````
``````>>> b c d f
``````

## Grouping expressions

Like aritmetic expressions, boolean expressions can be grouped using parentheses to indicate the order of the operations:

``````if (a > b and b == 13) or b == 25:
print("...")

if a > b and (b == 13 or b == 25):
print("...")
``````
Last edited on 23/01/2018