Skip to content

An Introduction to Conditional Statements in Python

Updated: at 04:23 AM

Conditional statements, also known as conditionals, are a fundamental concept in computer programming and the Python language. They allow a program to execute different code blocks based on whether a condition is True or False. Mastering conditionals is key to writing flexible programs that can make decisions and respond intelligently to different situations.

This comprehensive guide will introduce you to conditional statements in Python. We’ll cover the following topics:

Table of Contents

Open Table of Contents

What are Conditional Statements?

Conditional statements allow a program to perform different actions based on whether a condition evaluates to True or False. They act like a fork in the road, sending execution down one path or another.

Here’s a simple real-life example of a conditional:

if weather == "rainy":
    bring_umbrella()

This checks if the weather is rainy. If so, it executes the code block to bring an umbrella. The umbrella code is only run if the condition is True.

Conditionals are ubiquitous in programming. They give programs the ability to make decisions, assessing different conditions and responding appropriately. This flexible behavior is essential for features like game logic, user input validation, error handling, and much more.

Python’s Conditional Statements

Python has three main conditional statements:

Let’s look at each one in detail.

The if Statement

The if statement is used to check a condition and execute code if the condition is True:

if condition:
    # execute this code block

Here’s a simple example:

age = 20

if age >= 18:
    print("You are old enough to vote!")

This checks if age is greater than or equal to 18. If so, it will print a message. The code inside the if statement is called the if-block.

The else Statement

The else statement provides an alternate code block that executes if the if condition is False:

if condition:
   # execute if True
else:
   # execute if False

For example:

age = 16

if age >= 18:
    print("You can vote!")
else:
    print("You cannot vote yet.")

Here, the else block runs since age is not >= 18.

An if can have only one else block. The else provides a secondary path if the if condition fails.

The elif Statement

While if and else provide only two code paths, Python’s elif statement allows for multiple conditions to be checked:

if condition1:
   # do X
elif condition2:
   # do Y
else:
   # do Z

The elif checks for additional conditions if the initial if condition is False. We can add as many elif blocks as we want after the if.

For example:

age = 22

if age < 18:
   print("Toddler")
elif age < 21:
   print("Teenager")
else:
   print("Adult")

# Prints "Adult"

This allows code execution to follow multiple possible paths. The elif provides an “else if” condition before reaching the final else.

Comparison Operators

To check conditions, we need comparison operators that evaluate expressions and return True or False.

Python has operators for:

For example:

age = 18
age == 18  # True
age != 10  # True
age > 10   # True
age < 20   # True
age >= 18  # True
age <= 21  # True

We can use these comparison operators in conditional statements:

age = 22

if age >= 18:
    print("You are an adult!")

Logical Operators

Python also provides logical operators like and, or, and not that can evaluate multiple conditions at once.

For example:

age = 18
has_license = True

if age >= 18 and has_license:
    print("You can drive!")

This checks two conditions using and. Both conditions must be True to execute the if-block.

Some other logical operators:

We can combine comparison and logical operators to create complex conditionals:

age = 16
has_permit = True

if age >= 18 or (age >= 16 and has_permit):
    print("You can drive!")

Here we use or to check multiple conditions. The second uses and to require two criteria.

Code Blocks

The indented code after a conditional statement is called a code block or block.

Blocks allow multiple lines of code to execute if the condition passes. For example:

age = 18

if age >= 18:
    print("You are an adult!")
    status = "adult"
    can_vote = True

The multiline block runs if age >= 18.

Proper indentation is crucial in Python. The code block must be indented consistently following the conditional statement. Indentation is usually 4 spaces:

if condition:
    # code block is indented
    # indentation must be consistent
    # standard is 4 spaces

This allows Python to recognize it as a code block. Improper indentation will raise an error.

Simple Conditional Example

Let’s look at a simple real-world example using the concepts so far:

# Take input
age = int(input("Enter your age: "))

# Check driving eligibility
if age >= 18:
    print("You are eligible to drive!")
else:
    print("You are not eligible to drive yet.")

This uses input() to get an age value. Then it checks if age is >= 18 using an if..else statement. Different messages print based on the result.

This is a basic example, but it demonstrates how conditionals allow customized program flow based on input data.

Nested Conditionals

Conditionals can be nested to check additional conditions inside the code blocks.

For example:

age = 22

if age >= 18:
    print("You are an adult!")

    if age >=21:
        print("You can drink!")

The second if checks for a further condition before printing “You can drink!“.

We can nest conditionals indefinitely to model complex decision-making. Each nested conditional introduces another level of indentation in the code.

The elif and else blocks can also contain nested conditionals.

For example:

age = 19

if age >= 18:
    print("You are an adult!")

    if age >= 21:
        print("You can drink!")
    elif age >= 19:
        print("You can vote!")
    else:
        print("You cannot drink but can vote!")

else:
    print("You are a minor!")

Here we nest additional conditionals in the outer if, elif, and else blocks.

When nesting conditionals, ensure the indentation remains consistent. The nested blocks must align with their parent conditional statement.

Conditional Expressions

A conditional expression allows placing a conditional in-line rather than on separate lines:

x = 1 if condition else 0

Here if the condition holds, x is set to 1, otherwise 0.

We can refactor previous examples into expressions:

# Input
age = int(input("Enter your age: "))

# Conditional expression
can_drive = "You can drive!" if age >= 18 else "You cannot drive."

print(can_drive)

This sets can_drive to a message based on a conditional expression.

Conditional expressions provide a concise syntax for basic conditionals.

Common Mistakes

Here are some common mistakes when using conditionals:

Always double check the syntax, indentation, and operators used in conditional statements. Test your conditionals with different inputs to ensure they behave correctly.

Proper indentation and colon usage are especially important in Python’s syntax. The slight difference between = and == can also trip you up. Carefully avoiding these common mistakes will save you headaches!

In Summary

Here is an example bringing together all the main concepts:

# Take input
age = int(input("Enter your age: "))

# Check driving eligibility
if age >= 18:
    print("You are eligible to drive!")

    # Check drinking
    if age >= 21:
        print("You are eligible to drink!")
    elif age >= 19:
        print("You can vote, but cannot drink yet.")
    else:
        print("You can drive but cannot drink or vote yet.")

else:
    print("You are not eligible to drive, vote, or drink yet.")

This demonstrates chained conditional logic with nested blocks, elif, and else.

Conditionals are fundamental to writing intelligent Python programs. Mastering them opens the door to responsive and flexible code that can handle varying conditions and make smart decisions. They allow a Python programmer to model real world logic and scenarios.

There are many additional conditional syntax options and techniques beyond the basics presented here. As you continue learning Python, endeavor to grow your conditional statement skills. They will enable you to write powerful code and tackle complex programming challenges.

Happy Python programming!