29. elif and else
1. Introduction
The if statement checks a single condition.
But in real programs, you often need to check multiple possibilities.
That’s where elif (else if) and else come in.
2. The else Clause
else runs when all previous conditions are false.
age = 16
if age >= 18:
print("You are an adult")
else:
print("You are a minor")
Output:
You are a minor
3. The elif Clause
elif lets you check additional conditions.
score = 85
if score >= 90:
print("Grade: A")
elif score >= 80:
print("Grade: B")
elif score >= 70:
print("Grade: C")
else:
print("Grade: F")
Output:
Grade: B
4. Multiple elif Clauses
You can chain as many elif clauses as needed, but only one else.
temperature = 25
if temperature > 30:
print("Hot")
elif temperature > 20:
print("Warm")
elif temperature > 10:
print("Cool")
else:
print("Cold")
5. Order of Conditions Matters
Python checks conditions top to bottom.
As soon as one condition is true, the rest are ignored.
x = 15
if x > 10:
print("Greater than 10")
elif x > 5:
print("Greater than 5")
Output:
Greater than 10
6. Nested Conditionals vs elif
Instead of multiple nested if statements, elif makes code cleaner.
❌ Nested:
x = 10
if x >= 0:
if x == 0:
print("Zero")
else:
print("Positive")
✅ Better:
x = 10
if x < 0:
print("Negative")
elif x == 0:
print("Zero")
else:
print("Positive")
7. Using Boolean Operators with if
You can combine conditions using and, or, and not.
age = 20
has_id = True
if age >= 18 and has_id:
print("Access granted")
8. Short-Circuiting
Python stops evaluating conditions as soon as the result is known.
x = 0
# This won't cause ZeroDivisionError
if x != 0 and (10 / x > 1):
print("Condition met")
Here, since x != 0 is False, Python never checks the second condition.
9. Membership Tests in Conditions
You can use in and not in directly.
fruits = ["apple", "banana", "cherry"]
if "apple" in fruits:
print("Apple found")
elif "orange" not in fruits:
print("No orange here")
10. Conditional Expressions (Ternary Operator)
Python has a compact way to write if-else inside an expression:
age = 18
status = "adult" if age >= 18 else "minor"
print(status) # adult
11. Common Beginner Mistakes
- Forgetting the colon (
:):if x > 5 # ❌ SyntaxError - Using
=instead of==:if x = 5: # ❌ invalid - Misordering conditions:
if x > 0:
print("Positive")
elif x > 10: # ❌ unreachable, since >10 is already >0
print("Greater than 10")
12. Best Practices
- Keep conditions simple and readable.
- Avoid deep nesting; prefer
elif. - Use parentheses in complex conditions for clarity.
- If multiple conditions lead to the same action, group them with
or.
13. Practical Example
marks = 72
if marks >= 90:
grade = "A"
elif marks >= 75:
grade = "B"
elif marks >= 50:
grade = "C"
else:
grade = "F"
print("Your grade is", grade)
14. Next Steps
✅ You now understand how to use elif and else, along with advanced condition-handling techniques.
In the next chapter, we’ll look at nested conditionals in more detail.