Start learning free

LESSON 83 OF 410 · CONDITIONAL STATEMENTS

Logical Operators: Or

Lesson Read the full explanation

Sometimes we will need to run some code if at least one of two conditions is True. The logical or operator returns True if either of the conditions is True. Otherwise, if both conditions are False, it returns False.
For example:

7 >= 10 or 10 < 12 # Evaluates to True

We have two conditions separated by or operator:

  • 7 >= 10, which evaluates to False
  • 10 < 12, which evaluates to True
As at least one of the conditions evaluates to True, the entire line will evaluate to True

Another example:

10 < 15 or 10 > 9 # Evaluates to True as both conditions are True

An example inside an if statement:

x = 10
if x != 10 or 12 < x: # Evaluates to False
    print("This is true!")

Both conditions evalute to False, so the entire condition evaluates to False and the program prints nothing.

Assignment
Follow the Coding Tutorial and play with the or operator.


Hint
Look at the examples above if you get stuck.


STEP 1 OF 2
    Ctrl + Enter to check

    PYTHON · CONDITIONAL STATEMENTS

    Or Operator in Python, explained

    Introduction

    The logical or operator is a fundamental concept in programming that allows you to execute code based on multiple conditions. It is particularly useful in scenarios where you need to check if at least one of several conditions is true. Understanding how to use the or operator effectively can help you write more flexible and robust code.

    Understanding the Basics

    The or operator is a logical operator that returns True if at least one of the conditions it evaluates is True. If both conditions are False, it returns False. This operator is commonly used in decision-making structures like if statements to control the flow of a program.

    Consider the following simple example:

    condition1 = False
    condition2 = True
    result = condition1 or condition2
    print(result)  # Output: True
    

    In this example, condition1 is False and condition2 is True. Since at least one condition is True, the result is True.

    Main Concepts

    The key concept behind the or operator is its ability to short-circuit. This means that if the first condition is True, the second condition is not evaluated because the overall expression will be True regardless. This can be useful for optimizing performance and avoiding unnecessary computations.

    Here is an example demonstrating short-circuiting:

    def expensive_function():
        print("Expensive function called")
        return True
    
    result = True or expensive_function()
    print(result)  # Output: True
    # Note: "Expensive function called" is not printed because the first condition is True
    

    Examples and Use Cases

    Let's look at some practical examples where the or operator can be useful:

    # Example 1: User authentication
    is_admin = False
    is_logged_in = True
    
    if is_admin or is_logged_in:
        print("Access granted")
    else:
        print("Access denied")
    # Output: Access granted
    
    # Example 2: Checking multiple conditions
    temperature = 30
    humidity = 70
    
    if temperature > 25 or humidity > 60:
        print("It's a hot or humid day")
    # Output: It's a hot or humid day
    

    Common Pitfalls and Best Practices

    One common mistake when using the or operator is not considering the short-circuit behavior, which can lead to unexpected results. Always ensure that the conditions you are combining with or are independent or that you account for the short-circuiting.

    Best practices include:

    • Using parentheses to make complex conditions more readable.
    • Ensuring that the conditions are logically independent.
    • Testing your conditions separately to avoid unexpected behavior.

    Advanced Techniques

    In more advanced scenarios, you might combine the or operator with other logical operators like and and not to create complex logical expressions. Here is an example:

    # Combining or with and
    a = True
    b = False
    c = True
    
    if (a or b) and c:
        print("Complex condition is True")
    # Output: Complex condition is True
    

    Code Implementation

    Here is a well-commented code snippet demonstrating the use of the or operator in a real-world scenario:

    # Function to check if a user can access a resource
    def can_access_resource(is_admin, is_logged_in):
        # If the user is an admin or logged in, they can access the resource
        if is_admin or is_logged_in:
            return True
        else:
            return False
    
    # Test cases
    print(can_access_resource(True, False))  # Output: True
    print(can_access_resource(False, True))  # Output: True
    print(can_access_resource(False, False)) # Output: False
    

    Debugging and Testing

    When debugging code that uses the or operator, it is important to check the individual conditions separately. Use print statements or a debugger to inspect the values of each condition.

    Here is an example of writing tests for a function that uses the or operator:

    import unittest
    
    class TestAccessResource(unittest.TestCase):
        def test_admin_access(self):
            self.assertTrue(can_access_resource(True, False))
    
        def test_logged_in_access(self):
            self.assertTrue(can_access_resource(False, True))
    
        def test_no_access(self):
            self.assertFalse(can_access_resource(False, False))
    
    if __name__ == '__main__':
        unittest.main()
    

    Thinking and Problem-Solving Tips

    When approaching problems that involve the or operator, consider the following strategies:

    • Break down the problem into smaller parts and evaluate each condition separately.
    • Use truth tables to understand how different combinations of conditions will affect the outcome.
    • Practice writing simple if statements with the or operator to build your understanding.

    Conclusion

    Mastering the logical or operator is essential for writing flexible and efficient code. By understanding its behavior, common pitfalls, and best practices, you can leverage this operator to handle multiple conditions effectively. Keep practicing and exploring more complex scenarios to deepen your understanding.

    Additional Resources

    For further reading and practice problems, consider the following resources:

    Keep going with PythonAbout 340 step-by-step lessons, from your first line of code to coding interviews. Free to start.
    Start learning free