Control Structures – Conditional Statements in Python
Conditional statements let a program run different pieces of code depending on whether certain conditions are true.
In Python, the main keywords for decision-making are:
-
if– runs code if a condition is true. -
elif– short for else if, lets you check more conditions if the first was false. -
else– runs code if none of the above conditions are true.
If Statements
An if statement runs a block of code only when a condition evaluates to True.
The condition is a Boolean expression—something that’s either True or False.
Python uses a colon (:) and indentation to mark the code that belongs to the if.
For example:
# Example: using an if statement
x = 10
if x > 0:
print("x is a positive number")
print("This always prints, since it's outside the if")
-
The line under
ifruns only ifx > 0is true. -
The last
printruns no matter what, because it’s not indented under theif. -
Indentation is very important in Python—by convention, use 4 spaces.
If–Else Statements
Sometimes you want one block if the condition is true, and a different block if it’s false.
# Example: if-else for two branches
temperature = 5
if temperature < 0:
print("It's freezing cold!")
else:
print("Temperature is above freezing.")
Here:
-
If
temperature < 0is true → print freezing message. -
Otherwise → run the
elseblock.
Only one branch runs.
Using Elif for Multiple Conditions
For more than two possibilities, use elif for extra checks.
Python tests each condition in order until one is true, then skips the rest.
# Example: if, elif, else chain
score = 85
if score >= 90:
grade = "A"
elif score >= 75:
grade = "B"
elif score >= 65:
grade = "C"
else:
grade = "D"
print("Grade:", grade)
-
If the score is 90+ → Grade A (others skipped).
-
Else if 75+ → Grade B.
-
Else if 65+ → Grade C.
-
Otherwise → Grade D.
Only the first matching condition runs.
Nested If Statements
You can put an if inside another if to handle more complex logic.
# Example: nested if statements
num = 7
if num >= 0:
print("Number is non-negative")
if num == 0:
print("Number is zero")
else:
print("Number is positive")
else:
print("Number is negative")
Explanation:
-
Outer
ifchecks ifnum >= 0. -
If true, it runs another
ifto check if the number is exactly 0. -
Else inside it handles positive numbers.
-
Outer
elsehandles negative numbers.
Too much nesting can be hard to read—often you can replace it with elif or logical operators.
Key Points
-
All if-conditions are evaluated as True/False (truthy/falsy).
-
Indentation defines scope—wrong indentation will cause errors.
-
You can have one
elseand manyelifclauses. -
If no condition matches and there’s no
else, nothing happens. -
Python has no
switch-case; useelifor dictionaries instead. -
Use
passas a placeholder for an emptyifblock.
Mini-Exercise
Write code to determine ticket fees based on age:
age = int(input("Enter your age: "))
# If age under 5 → "Free entry"
# If age 5 to 12 → "Child ticket"
# If age 13 to 59 → "Adult ticket"
# Otherwise (60+) → "Senior discount"
Task:
-
Fill in the
if-elif-elsestatements to handle these 4 cases. -
Test with different ages to make sure each branch works.
