PYTHON

Python or Operator: The Logical OR in Python

The or operator in Python evaluates multiple conditions and returns True if any of the conditions are true.

How to Use the Python or Operator

In Python, the or operator returns True if at least one of the conditions evaluates to True. If all conditions are False, it returns False.

condition1 or condition2
  • condition1: The first condition to evaluate.
  • condition2: The second condition to evaluate.

Basic Usage

result = (5 > 3) or (10 < 5)
print(result)  # Outputs: True

When to Use the Python or Operator

The or operator in Python is versatile and useful for evaluating multiple conditions in various scenarios.

Combining Multiple Conditions

You can use the or operator to combine multiple conditions. This is helpful for checking if at least one condition is true before proceeding.

age = 20
has_permission = True
if age >= 18 or has_permission:
    print("Access granted")
else:
    print("Access denied")

Default Values in Functions

The or operator is handy for setting default values within functions. If the first value is falsy, the or operator evaluates and returns the second value.

def get_username(name=None):
    return name or "Guest"

print(get_username("Alice"))  # Outputs: Alice
print(get_username())  # Outputs: Guest

Simplifying Boolean Expressions

The or operator simplifies boolean expressions by reducing several if statements into a single line. It helps make your code more readable and concise.

temp = 30
weather = "sunny"
if temp > 25 or weather == "sunny":
    print("It's a good day for a walk")
else:
    print("Better stay in")

Examples of Using the Python or Operator

Login Methods

Applications might use or to allow users to log in with either their username or their email address and password.

input_username = "admin"
input_email = "admin@example.com"
input_password = "admin123"

stored_username = "admin"
stored_email = "admin@example.com"
stored_password = "admin123"

is_authenticated = ((input_username == stored_username or input_email == stored_email) and input_password == stored_password)
print(is_authenticated)  # Outputs: True

Feature Toggles

Applications often use the or operator to enable or disable features based on multiple conditions.

is_admin = False
has_premium_access = True
can_access = is_admin or has_premium_access
print(can_access)  # Outputs: True

Input Validation

Sometimes, survey applications use the or operator to validate user inputs. For example, they might use or to make sure users provide either a name or an email address.

name = ""
email = "user@example.com"

if name or email:
    print("At least one contact field is provided")
else:
    print("Please provide your name or email")

Learn More About the Python or Operator

Using or in Conditional Statements

The or operator is common in conditional statements for combining multiple conditions into a single decision point.

x, y = 5, 10
if x > 5 or y < 15:
    print("Condition met")
else:
    print("Condition not met")

Short-Circuit Evaluation

In Python, the or operator performs short-circuit evaluation. It evaluates the second condition only if the first is False, optimizing performance and avoiding unnecessary computations.

def complex_check():
    print("Evaluating complex_check")
    return True

if True or complex_check():  # complex_check() won't be called
    print("Short-circuit achieved")

Logical or vs. Logical and

Understanding the differences between the or and and operators is crucial for constructing complex logical expressions. The or operator returns True if any condition is true, while and requires all conditions to be true.

a = True
b = False
print(a or b)  # Outputs: True
print(a and b)  # Outputs: False

Combining or with and Operators in Complex Conditions

When combining the or operator with the and operator, you can construct complex conditions. Parentheses are vital to ensure clarity and proper execution.

x, y, z = 10, 5, 0
if (x > 5 and y < 10) or z == 0:
    print("Complex condition met")
else:
    print("Complex condition not met")

Combining or with Other Control Structures

You can combine the or operator with other control structures like loops and functions. This combination is useful for scenarios requiring multiple conditions to be true before executing a block of code.

def check_conditions(value):
    return value > 10 or value % 2 == 0

values = [8, 12, 15, 20]
for v in values:
    if check_conditions(v):
        print(f"{v} meets the criteria")
# Outputs:
# 12 meets the criteria
# 15 meets the criteria
# 20 meets the criteria

Logical OR vs. Bitwise OR

The Python programming language distinguishes between logical and bitwise OR operations. Logical operations with the or operator evaluate boolean expressions. On the other hand, the bitwise or (|) operates on corresponding bits.

# Logical OR
result = (True or False)  # Outputs: True

# Bitwise OR
result = (4 | 1)  # Outputs: 5 (0100 | 0001 = 0101)

Exclusive OR (XOR) in Python

Python lacks a specific logical XOR operator, but you can achieve the same effect using the inequality operator (!=). A boolean operation with != only returns True when exactly one of the conditions is True.

a = True
b = False
result = (a != b)
print(result)  # Outputs: True

a = True
b = True
result = (a != b)
print(result)  # Outputs: False

However, there is a bitwise XOR (^) operator in Python. The ^ operator compares the binary representation of numbers. It returns a new integer where each bit is 1 if the corresponding bits of either but not both operands are 1.

x = 5  # Binary: 0101
y = 3  # Binary: 0011
result = x ^ y  # Binary: 0110 (Decimal: 6)
print(result)  # Outputs: 6
Learn to Code in Python for Free
Start learning now
button icon
To advance beyond this tutorial and learn Python by doing, try the interactive experience of Mimo. Whether you're starting from scratch or brushing up your coding skills, Mimo helps you take your coding journey above and beyond.

Sign up or download Mimo from the App Store or Google Play to enhance your programming skills and prepare for a career in tech.

You can code, too.

© 2024 Mimo GmbH