Back to Python
2026-03-226 min read

Python Elif

Learn Python Elif step by step with clear examples and exercises.

Title: Python Elif Statement - A full guide for Programmers

Why This Matters

The elif (short for "else if") statement is an essential component in Python programming, providing developers with a powerful tool to handle multiple conditions within their code. It allows for more efficient decision-making and tackling complex problems with ease. Understanding elif can help you write cleaner, more efficient code and solve real-world problems accurately.

Prerequisites

Before delving into the elif statement, ensure you have a solid understanding of the following concepts:

  1. Basic Python syntax (variables, data types, operators)
  2. Control structures (if-else statements)
  3. Loops (for and while loops)
  4. Functions
  5. Understanding the concept of flow control in programming, including conditional statements and decision-making processes.
  6. Familiarity with Python's indentation rules for readability and proper execution of code blocks.
  7. Comfortable with basic data structures like lists and dictionaries.

Core Concept

The elif statement is a shorthand for "else if" in Python. It allows you to test multiple conditions within an if-else block, making it possible to evaluate multiple possibilities before the else statement is executed. Here's the basic syntax:

if condition1:

code block for condition1

elif condition2:

code block for condition2

elif condition3:

code block for condition3

else:

default code block


In this example, the program tests each condition in order. If `condition1` is true, it executes the corresponding code block and skips the remaining conditions and the else statement. If `condition1` is false but `condition2` is true, it executes the code block for `condition2`. This continues until a true condition is found or the last else statement is reached if no conditions are true.

### Nested Elifs

You can also use multiple nested `elif` statements within an `if` block to test more complex conditions:

if x > 10:

if x < 20:

print("x is between 11 and 19")

elif x < 30:

print("x is between 21 and 29")

else:

print("x is greater than 29")


In this example, the first `if` statement checks if `x` is greater than 10. If it is, the nested `elif` statements test whether `x` is between specific ranges. If none of the conditions are met, the else block is executed.

Worked Example

Let's create a simple program that calculates the cost of a product based on its quantity and type (books, electronics, or clothes). Use elif to handle different types of products with varying discount rates:

product_type = input("Enter the product type (books/electronics/clothes): ")
quantity = int(input("Enter the quantity:"))

if product_type == "books":
price = 10
elif product_type == "electronics":
if quantity > 5:
price = 20 * (quantity - 3) + 60
else:
price = 20 * quantity
elif product_type == "clothes":
if quantity > 10:
price = 15 * (quantity - 7) + 75
elif quantity >= 5:
price = 15 * quantity
else:
price = 15 * quantity + 20
else:
print("Invalid product type.")

total_cost = price * 0.9 if quantity > 10 else price
print(f"Total cost: ${total_cost}")

In this example, the user enters the product type and quantity. The program checks each condition in order and calculates the total cost based on the entered data. It also applies a discount of 10% if the quantity exceeds 10 for all products.

Common Mistakes

  1. Forgetting to use : after the conditions:

Incorrect:

if marks >= 90
print("Grade: A+")
elif marks >= 80
print("Grade: A")

Correct:

if marks >= 90:
print("Grade: A+")
elif marks >= 80:
print("Grade: A")
  1. Using elif instead of else when you want to check multiple conditions within an if block:

Incorrect:

if condition1 or condition2:

code block

elif condition3:

code block

else:

default code block


Correct:

if condition1:

code block for condition1

elif condition2:

code block for condition2

else:

default code block


3. Using `elif` with loops (for or while):

Incorrect:

for i in range(10):

if i == 5:

elif i == 7:

print("i is either 5 or 7")


Correct:

for i in range(10):

if i == 5:

print("i is 5")

elif i == 7:

print("i is 7")


4. Forgetting to handle the case where no conditions are met (i.e., not using an `else` statement):

Incorrect:

if condition1:

code block for condition1

elif condition2:

code block for condition2


Correct:

if condition1:

code block for condition1

elif condition2:

code block for condition2

else:

default code block

Practice Questions

  1. Write a program that calculates the cost of a meal based on the type of meal (breakfast, lunch, or dinner) and the quantity of items ordered. Use elif to handle different types of meals with varying prices and discounts.
  1. Create a program that checks if a number is even or odd using elif.
  1. Write a program that determines whether a year is a leap year using elif. A leap year has 366 days and occurs every four years, except for centuries not divisible by 400.

Common Mistakes (CONT'D)

  1. Using multiple else statements in an if-elif block:

Incorrect:

if condition1:

code block for condition1

else:

if condition2:

code block for condition2

else:

default code block


Correct:

if condition1:

code block for condition1

else:

if condition2:

code block for condition2


6. Forgetting to handle the case where no conditions are met (i.e., not using an `else` statement) in nested `elif` statements:

Incorrect:

if x > 10:

if x < 20:

print("x is between 11 and 19")

elif x < 30:

print("x is between 21 and 29")


Correct:

if x > 10:

if x < 20:

print("x is between 11 and 19")

elif x < 30:

print("x is between 21 and 29")

else:

print("x is greater than 29")

Practice Questions

  1. Write a program that calculates the cost of a hotel room based on the type of room (single, double, or suite), the number of nights stayed, and whether the stay includes breakfast. Use elif to handle different scenarios with varying prices and discounts.
  1. Create a program that checks if a given string is a palindrome using elif. A palindrome is a word, phrase, number, or other sequence of characters that reads the same forward and backward.
  1. Write a program that determines whether a number is prime using elif. A prime number is a natural number greater than 1 that has no positive divisors other than 1 and itself.

FAQ

Can I use multiple elif statements within an if block?

Yes, you can use as many elif statements as needed to test multiple conditions within an if block.

What happens if none of the conditions in an if-elif block are true?

If none of the conditions are true and there's no else statement, Python will move on to the next line after the if-elif block without executing any code.

Can I use elif with loops (for or while)?

No, you should use if-else within loops to test conditions at each iteration. The elif statement is used only within the main flow of control (if blocks).

Is it possible to have multiple else statements in an if-elif block?

No, there can only be one else statement in an if-elif block. If you need to handle multiple scenarios after all conditions have been tested, consider using multiple elif statements or wrapping the current if-elif block within another if-elif block with an additional condition for the "else" case.

What is the difference between if, elif, and else in Python?

The if statement checks a single condition. If that condition is true, the corresponding code block is executed. The elif statement tests another condition if the previous conditions (including the initial if statement) are false. The else statement is optional and serves as a default case for when none of the preceding conditions are met.

Can I use multiple if statements within an if-elif block?

No, you should use either if, elif, or else within an if-elif block to test conditions. Multiple if statements can lead to ambiguity and are generally not recommended.

Can I use elif with ternary operators (e.g., x = condition1 if condition2 else condition3) in Python?

Yes, you can use the ternary operator in Python, but Note that that using multiple ternary operators can make your code harder to read and understand. It's generally recommended to stick with traditional if-elif-else blocks for better readability and maintainability of your code.

Python Elif | Python | XQA Learn