Logical operators work on Boolean values but can be used on integers and other objects as well. Python has three logical operators: and, or, and not.
The following table provides a quick overview of Python logical operators:
β₯οΈ Info: Are you AI curious but you still have to create real impactful projects? Join our official AI builder club on Skool (only $5): SHIP! - One Project Per Month
| Operator | Description | Example |
|---|---|---|
and | Returns True if both operands are True, and False otherwise. | (True and True) == True |
or | Returns True if at least one of the two operands is True, and False otherwise. | (False or True) == True |
not | Returns True if the single operand is False, and False otherwise. | (not True) == False |
Let’s dive into the operators one by one.
Python AND Operator
Python’s and operator performs the logical AND operation that returns True if both operands evaluate to True. The operator performs an optimization called short-circuiting, so if the first operand evaluates to True, it returns the second operand; and if the first operand evaluates to False, it returns False without further evaluating the second operand.
As you read through the article, you can also watch my video for supporting explanations:
Here’s the result of the and operator when applied to Boolean operands:
| First Operand A | Second Operand B | A and B |
|---|---|---|
| False | False | False |
| False | True | False |
| True | False | False |
| True | True | True |
You can see those examples in the following script:
>>> False and False False >>> False and True False >>> True and False False >>> True and True True
You can also apply the and operator to integers:
| First Operand A | Second Operand B | A and B |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
The same can be seen in the following Python script:
>>> 0 and 0 0 >>> 0 and 1 0 >>> 1 and 0 0 >>> 1 and 1 1
Python OR Operator
Python’s or operator performs the logical OR operation that returns True if at least one of the operands evaluates to True. The operator performs an optimization called short-circuiting, so if the first operand evaluates to True, it returns the first right away without further evaluating the second, and if the first operand evaluates to False, it returns the second operand.
As you read through the article, you can also watch my video for supporting explanations:
Here’s the result of the or operator when applied to Boolean operands:
| First Operand A | Second Operand B | A or B |
|---|---|---|
| False | False | False |
| False | True | True |
| True | False | True |
| True | True | True |
You can see those examples in the following script:
>>> False or False False >>> False or True True >>> True or False True >>> True or True False
You can also apply the or operator to integers:
| First Operand A | Second Operand B | A or B |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
The same can be seen in the following Python script:
>>> 0 or 0 0 >>> 0 or 1 0 >>> 1 or 0 0 >>> 1 or 1 1
Full Tutorial: Python OR Operator
Python NOT Operator
Python’s not operator returns True if the single operand evaluates to False, and returns False if it evaluates to True. Thus, it logically negates the implicit or explicit Boolean value of the operand.
As you read through the article, you can also watch my video for supporting explanations:
You can apply the not operator to a Boolean value and Python invert the Boolean operand. Thus, the expression not False becomes True and not True becomes False.
| Operand: A | not A |
|---|---|
| False | True |
| True | False |
You can see those examples in the following script:
>>> not False True >>> not True False
You can apply the not operator to an integer value. Python internally converts the integer value to a Boolean value, i.e., all non-zero integers will be converted to True and integer 0 to False. The resulting Boolean is then inverted by the not operator. For example, the expression not 1 becomes False and not 0 becomes True.
| Operand: A | not A |
|---|---|
| 1 | False |
| 99 | False |
| -99 | False |
| 0 | True |
All integers except 0 are internally converted to a True Boolean value. Thus, the integers 1, 99, and even -99 lead to the calculation of not True which evaluates to False.
You can see those examples in the following script:
>>> not 1 False >>> not 99 False >>> not -99 False >>> not 0 True