Altcademy - a Forbes magazine logo Best Coding Bootcamp 2023

What is or in Python

Understanding the 'or' Operator in Python

When you're just starting out with programming, getting to grips with the basic building blocks is crucial. One such building block in Python, and indeed in most programming languages, is the logical operator. Today, we're going to focus on one specific logical operator: or.

What Does 'or' Do?

Imagine you're at a buffet and you're allowed to have dessert if you either finish your vegetables or your chicken. You don't need to eat both to earn your sweet treat, just one or the other. This is what or does in Python. It's a logical operator that allows you to check if at least one of multiple conditions is True.

Simple 'or' Operator Examples

Let's dive into some code. In Python, the or operator is used between two boolean expressions (a fancy term for something that is either True or False). Here's a simple example:

has_vegetables = True
has_chicken = False

can_have_dessert = has_vegetables or has_chicken
print(can_have_dessert)  # This will print True

In this example, can_have_dessert will be True because has_vegetables is True, even though has_chicken is False. As long as one of the conditions is True, the or operator will result in True.

'or' with Different Data Types

Python is a bit more flexible than just dealing with True or False. It allows or to be used with a variety of data types, and it uses something called "truthy" and "falsy" values. A "truthy" value is something that Python considers to be equivalent to True, and a "falsy" value is something that it considers equivalent to False.

Here's a list of common "falsy" values in Python:

  • None
  • False
  • 0 (zero in any numeric type)
  • '' (an empty string)
  • [] (an empty list)
  • {} (an empty dictionary)
  • () (an empty tuple)
  • set() (an empty set)

Anything that's not in this list is generally considered "truthy".

Let's see an example with different data types:

name = ""
nickname = "Ace"

greeting_name = name or nickname
print(greeting_name)  # This will print "Ace"

In this case, name is an empty string, which is a "falsy" value. Therefore, the or operator checks the next value, nickname, which is "truthy", and so greeting_name is set to "Ace".

'or' in Control Flow

One common use of or is within if statements, which control the flow of your program. It's like choosing a path to walk based on a signpost: if one path is blocked, you take the other.

age = 20
has_permission = False

if age >= 18 or has_permission:
    print("You can enter the club.")
else:
    print("Sorry, you can't enter.")

In this snippet, the person can enter the club if they are 18 or older, or if they have special permission. Since the age is 20, which meets the first condition, the message printed will be "You can enter the club."

Short-Circuit Evaluation

Here's an interesting thing about or in Python: it uses what's called "short-circuit evaluation". This means that Python is efficient and will stop evaluating as soon as it finds a "truthy" value.

def print_hello():
    print("Hello!")

result = None or print_hello()

In this code, print_hello() will be executed because None is a "falsy" value. If the first value was "truthy", print_hello() wouldn't be called at all.

Combining 'or' with 'and'

Sometimes you might encounter situations where you need to use or together with another logical operator, and. The and operator requires both conditions to be True to result in True.

is_weekend = True
has_guests = True
has_food = False

can_party = is_weekend and (has_guests or has_food)
print(can_party)  # This will print True

In this example, can_party will be True because it's the weekend and there are guests, even though there isn't food. The parentheses are used to make the order of evaluation clear: Python checks the or condition first, then uses that result with the and condition.

Common Pitfalls

Beware of mixing up or with and. Remember, or needs just one "truthy" value, while and needs all values to be "truthy". Also, be careful when using or with assignments, as it might not always behave as you expect if you're not considering "truthy" and "falsy" values.

Conclusion

The or operator is a simple yet powerful tool in Python that can help you make decisions in your code based on multiple conditions. It's like having an easy-going friend who's happy as long as one thing goes right. As you continue your programming journey, you'll find or to be an indispensable part of your coding toolkit, helping you navigate through complex logic with ease. So, the next time you're writing an if statement or evaluating conditions, remember the friendly or operator and the flexibility it offers. Happy coding!