This post was last Updated on October 24, 2022 by Himanshu Tyagi to reflect the accuracy and up-to-date information on the page.
In this tutorial, you will learn about the or operator in Python. The “or” is one of the logical operators used in Boolean Algebra developed by George Boole. There are a total of three logical operators present in Python. They are:
- and
- or
- not
These logical operators connect individual boolean expressions to create compound boolean expressions.
Also Read: Natural Language Processing in Python: Techniques
Or Operator in Python
The or operator combines individual boolean expressions to form a single compound boolean expression, and the resultant compound boolean expression is True if at least one subexpression is True.
Syntax of or operator
Expression1 or Expression2 or Expression3…..
Let’s look into various cases/contexts where or operator is used.
Also Read: Python Reserved Words List With Definitions and Examples
Using or with Boolean Expressions
Boolean Expressions are expressions that result in a boolean value, i.e., either True or False. As discussed above, if at least one sub-expression in the compound expression is True, then the resultant value of the compound expression is also True. If none of the expressions is True, then the result of the compound expression formed using or is False.
Below is the working of or operator with Boolean Expressions
Expression 1 | Expression 2 | Expression 1 or Expression 2 |
---|---|---|
True | True | True |
True | False | True |
False | True | True |
False | False | False |
Below is an example program where or operator is used with boolean expressions.
Code
print((1>2) or (1<2)) print(1==2 or 1==0)
Output
True
False
Also Read: How to Fix Invalid Syntax Error in Python
Using or with common objects
When or operator is used between objects, the or operator returns a true/false object, not the boolean value. It returns the first object evaluated to True or the last object. Below are a few false objects –
- Empty sequences/collections – [], (), {}, set(), ‘’
- None, False
- Zero – 0, 0.0, 0/1
Let’s look at a few examples to get more clearance between True and False objects.
Code
# case-1 print(1 or 2) # case-2 print(0 or 1.2) # case-3 print([] or 0) # case-4 print(0.0 or 5 or [1,2])
Output
1
1.2
0
5
Also Read: How to Fix Unexpected EOF While Parsing Error In Python
Explanation:
Case 1: Here, the 1 and 2 both values are True values, so it returns the first true value, i.e., 1
Case 2: In this case, the first object value 0 is False. The second object, 1.2, is true, and the 1.2 value is returned.
Case 3: Here, both values [] (‘Empty list’), 0 are False values. So the result of or operator between [], 0 results last object, i.e., 0
Case 4: The or operation between multiple objects gives the first object, which is evaluated to be true, or the last object. In this case, 5 is the first true object among 0, 5, [1,2]. So it returns 5 as a result.
Below is the working of or operator with 2 objects.
Left Object | Right Object | Left Object or Right Object |
obj1 | obj2 | obj1 if it is True else obj2 |
Also Read: How To Copy List in Python
Using or between Boolean Expressions and Objects
The Boolean expression and Objects can be combined into a compound expression using an operator and returns the first True or last operand. The returned value can be True, False, or the Object.
Below is the working of or operator between Boolean Expressions and Objects.
Also Read: 10 Best Programming Apps To Learn Python
Let’s look at a few examples to understand the topic better.
Code:
# case-1 print(10>1 or 1) # case-2 print(1 or 1<12) # case-3 print({} or 100>1000) # case-4 print(1==2 or 0.0) # case-5 print(0.0 or 1==1 or [1,2])
Output:
True
1
False
0.0
True
Also Read: Python Program To Reverse A Number
Explanation:
Case 1: Here, the first expression 10>1 results in True, and the compound expression returns True.
Case 2: In this case, the first expression is 1 (object), which is a true value, so irrespective of the second expression, it returns the first true value – 1 as a result.
Case 3: Here, the first expression {} is an empty object with a False value, and the second expression 100>1000 results in True. So it returns True as a result.
Case 4: In this case, both expressions are False values. So returns the last expression value, i.e., object 0.0
Case 5: Here, the first true expression is 1==1, resulting in a True value. So it returns a True value.
These are the various cases/contexts where or operator is used.
Note:- When Python Interpreter works with the expressions combined with or logical operator, the interpreter stops evaluating the individual expressions after finding the first true operand/expression. This is called a short-circuit/lazy evaluation.
Also Read: Python Program to Find Sum of Digits [5 Methods]
Error Handling
The or operator can also be used to avoid some errors while coding. One such case is ZeroDivisionError.
The code that throws an error when trying to divide a number with zero is given below.
# divide function def divide(numerator,denominator): return numerator/denominator print(divide(24/0))
Output:
ZeroDivisionError Traceback (most recent call last) <ipython-input-1-07ea2d9e78b7> in <module> 2 return numerator/denominator 3 ----> 4 print(divide(24/0)) ZeroDivisionError: division by zero
Also Read: Python Program To Check If A Number Is a Perfect Square
This error can be fixed using the or operator. Below is the error-fixed code.
def divide(numerator,denominator): return denominator==0 or numerator/denominator print(divide(24/0))
Output
True
Explanation: The or operator is used between two expressions in the return statement. The first expression, denominator==0, is valid as per the input. So the second statement numerator/denominator will not get executed, and ZeroDivisionError will be avoided.
Also Read: Increment and Decrement Operators in Python
Multiple expressions in the Lambda function
The lambda keyword defines a simple anonymous function with a single expression. But using or operator, it’s possible to define multiple expressions in a single lambda function by the below code.
# lambda function website_Name = lambda string1, string2 : print(string1) or print(string2) website_Name('CodeITBro','Programming Tutorials site')
Output
CodeITBro
Programming Tutorials site