Logical operators
The logical operators in Python are used to combine the true or false values of variables (or expressions) so you can figure out their resultant truth value. Three logical operators are available in Python:
1. and – returns True only if both operands are true. In any other case, False will be returned. For example, the following expression will evaluate to True: 5 < 7 and 5 > 3, because 5 is indeed less than 7 and greater than 3. Here is the and operator’s truth table (a table that lists all the possible inputs and the results for the logical operators):
First operand | Second operand | Result |
---|---|---|
True | True | True |
True | False | False |
False | True | False |
False | False | False |
Here are a couple of examples:
>>> 5 < 7 and 5 > 3 True >>> >>> 3 > 3 and 55 > 30 False >>> 15 / 3 >= 200 and 3 == 3 False >>> 55 == 55 and 3 <= 3 True
2. or – returns True when one or both of the operands are true. For example, the expression 5 < 3 or 3 == 3 will return True because the second operand (3 == 3) evaluates to True. Only if both operands are false will False be returned. The truth table for this operator looks like this:
First operand | Second operand | Result |
---|---|---|
True | True | True |
True | False | True |
False | True | True |
False | False | False |
Examples:
>>> 3 == 3 or 5 < 3 True >>> 15 < 3 or 5 > 3 True >>> 12 <= 1 or 5 < 1 False >>> 20 + 3 >= 23 or 5 != 5 True
3. not – negates the truth value of a single operand. In other words, True becomes False and vice versa. The truth table here is smaller because only a single operand is used:
Operand | Result | |
---|---|---|
True | False | |
False | True |
Examples:
>>> not True False >>> not False True >>> not 5 > 3 False >>> not (5 > 3 and 5 > 2) False >>> not (5 > 3 and 5 < 33) False >>> not (5 < 3 and 5 < 33) True
Let’s expain the last example – not (5 < 3 and 5 < 33) – and why it returns True. Simply evaluate the expression in the parentheses first:
5 < 3 – 5 isn’t smaller than 3, so this expression is false.
5 < 33 – 5 is smaller than 33, so this expression is true.
From the truth table for the and operator above, we know that False and True return False. So the expression 5 < 3 and 5 < 33 will return False. Now, we just need to apply the not operator, so False becomes True.