Skip to main content

Python Booleans

Introduction​

Boolean values are a fundamental data type in Python, representing one of two possible states: True or False. Named after mathematician George Boole, these values form the basis of logical operations and decision-making in programming. In Python, Booleans are essential for controlling program flow through conditional statements and loops.

Understanding Booleans is crucial as they help answer yes/no questions in your code, which is the foundation of most logical operations in programming.

Boolean Basics​

The Boolean Data Type​

In Python, the Boolean data type has only two possible values:

python
x = True
y = False

You can check the data type using the type() function:

python
print(type(True))  # <class 'bool'>

Boolean as Numbers​

Interestingly, in Python, True and False are actually special cases of integers:

python
print(True + True)  # 2
print(True * 8) # 8
print(False * 10) # 0

This is because True is treated as 1 and False as 0 in numerical operations.

Comparison Operators​

Comparison operators evaluate the relationship between values and return Boolean results.

python
# Equal to
x = 5
y = 5
print(x == y) # True

# Not equal to
a = "hello"
b = "world"
print(a != b) # True

# Greater than and less than
age = 25
print(age > 18) # True
print(age < 21) # False

# Greater than or equal to, less than or equal to
score = 75
print(score >= 70) # True
print(score <= 70) # False

Logical Operators​

Python provides three logical operators to combine Boolean expressions:

and​

Returns True if both statements are true:

python
x = 5
print(x > 3 and x < 10) # True (both conditions are true)
print(x > 3 and x > 10) # False (second condition is false)

or​

Returns True if at least one statement is true:

python
y = 12
print(y < 5 or y > 10) # True (second condition is true)
print(y < 5 or y < 10) # False (both conditions are false)

not​

Reverses the result, returning False if the result is True:

python
z = 7
print(not(z > 10)) # True (because z > 10 is False)
print(not(z > 5)) # False (because z > 5 is True)

Boolean Methods and Functions​

Python's built-in bool() function converts values to Booleans according to certain rules:

python
# Most values evaluate to True
print(bool(1)) # True
print(bool("Hello")) # True
print(bool([1, 2])) # True

# These values evaluate to False
print(bool(0)) # False
print(bool("")) # False (empty string)
print(bool([])) # False (empty list)
print(bool(None)) # False

Truthiness and Falsiness​

In Python, values can be evaluated in Boolean contexts without explicitly converting them to Booleans:

Falsy Values​

The following values are considered "falsy" (evaluate to False):

  • False
  • None
  • 0 (zero)
  • Empty sequences: '', [], ()
  • Empty mappings: {}
  • Objects that implement __bool__() to return False

Truthy Values​

Virtually everything else evaluates to True:

python
# Examples of truthy values
if "hello":
print("Non-empty strings are truthy") # This will print

if [1, 2, 3]:
print("Non-empty lists are truthy") # This will print

if 42:
print("Non-zero numbers are truthy") # This will print

Practical Examples​

User Authentication​

python
def is_valid_user(username, password):
stored_username = "admin"
stored_password = "secure123"

is_username_valid = (username == stored_username)
is_password_valid = (password == stored_password)

return is_username_valid and is_password_valid

# Example usage
print(is_valid_user("admin", "secure123")) # True
print(is_valid_user("admin", "wrong")) # False

Filtering Lists​

python
ages = [18, 21, 14, 32, 17, 25, 19]

# Filter adults (age 18 or older)
adults = [age for age in ages if age >= 18]
print(adults) # [18, 21, 32, 25, 19]

# Check if all people are adults
all_adults = all(age >= 18 for age in ages)
print(all_adults) # False

# Check if at least one person is underage
has_underage = any(age < 18 for age in ages)
print(has_underage) # True

Input Validation​

python
def validate_input(user_input):
# Check if input is not empty
if not user_input:
return False

# Check if input is within valid range
try:
value = int(user_input)
return 1 <= value <= 100
except ValueError:
return False

# Example usage
print(validate_input("42")) # True
print(validate_input("")) # False
print(validate_input("101")) # False
print(validate_input("abc")) # False

Advanced Boolean Operations​

Short-Circuit Evaluation​

Python uses short-circuit evaluation with the and and or operators:

python
# With 'and', if the first expression is False, the second one is not evaluated
x = False
y = True
result = x and print("This won't print") # The print function is not executed

# With 'or', if the first expression is True, the second one is not evaluated
a = True
b = False
result = a or print("This won't print") # The print function is not executed

The is Operator​

The is operator checks if two variables point to the same object in memory:

python
a = [1, 2, 3]
b = [1, 2, 3]
c = a

print(a == b) # True (content is the same)
print(a is b) # False (different objects in memory)
print(a is c) # True (same object)

Boolean Operations with Sets​

Set operations have Boolean equivalents:

python
A = {1, 2, 3, 4}
B = {3, 4, 5, 6}

# Intersection (AND)
print(A & B) # {3, 4}

# Union (OR)
print(A | B) # {1, 2, 3, 4, 5, 6}

# Difference (in A but not in B)
print(A - B) # {1, 2}

# Symmetric difference (XOR - in either set but not both)
print(A ^ B) # {1, 2, 5, 6}

Summary​

Booleans in Python represent the values True and False and are fundamental to logical operations and decision-making in programming. Key points to remember:

  1. Boolean values can be created directly with True and False keywords or through comparison operations
  2. Logical operators (and, or, not) combine Boolean expressions
  3. Values in Python have "truthiness" - they evaluate to either True or False in Boolean contexts
  4. Booleans are essential for conditional logic in if statements, loops, and filter operations
  5. Python treats True as 1 and False as 0 in numerical contexts

Understanding Booleans enables you to write clearer, more efficient code with better control flow and decision-making.

Exercises​

  1. Write a function that checks if a number is both even and positive.
  2. Create a function that checks if a string is a valid password (at least 8 characters, contains both letters and numbers).
  3. Write a program that filters a list of numbers to contain only even numbers.
  4. Create a function that checks if a year is a leap year.
  5. Implement a simple voting eligibility checker that checks if a person is 18 or older and is a citizen.

Additional Resources​

Happy coding with Python Booleans!



If you spot any mistakes on this website, please let me know at feedback@compilenrun.com. I’d greatly appreciate your feedback! :)