Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Python Block Structure and Indentation
📖 Scenario: You are helping a small bakery keep track of daily sales and decide if they met their sales goal.
🎯 Goal: Build a simple Python program that uses indentation and blocks correctly to check if the bakery met its sales goal and print a message.
📋 What You'll Learn
Create a variable with the total sales amount.
Create a variable with the sales goal amount.
Use an if-else block with correct indentation to compare sales and goal.
Print a message depending on whether the goal was met or not.
💡 Why This Matters
🌍 Real World
Businesses often use simple programs like this to check if they met daily targets and decide next steps.
💼 Career
Understanding Python block structure and indentation is essential for writing clear, error-free code in any programming job.
Progress0 / 4 steps
1
Create the sales data variable
Create a variable called total_sales and set it to 1200 to represent the bakery's total sales for the day.
Python
Hint
Use the equals sign = to assign the value 1200 to the variable total_sales.
2
Set the sales goal
Create a variable called sales_goal and set it to 1000 to represent the bakery's sales target for the day.
Python
Hint
Remember to use a new line and assign 1000 to sales_goal.
3
Write the if-else block to check sales
Write an if statement to check if total_sales is greater than or equal to sales_goal. Use a colon : and indent the next line. Inside the if block, write message = "Goal met! Great job!". Then write an else block with the same indentation as if, and inside it write message = "Goal not met. Keep trying!" indented properly.
Python
Hint
Remember to indent the lines inside the if and else blocks by 4 spaces.
4
Print the result message
Write a print statement to display the value of the message variable.
Python
Hint
Use print(message) to show the message on the screen.
Practice
(1/5)
1. What does indentation in Python indicate?
easy
A. Which lines of code belong together in a block
B. The data type of a variable
C. The speed of code execution
D. The name of a function
Solution
Step 1: Understand Python's use of indentation
Python uses indentation to group lines of code that belong to the same block, like inside a function or loop.
Step 2: Identify what indentation shows
Indentation shows which lines are connected logically and executed together.
Final Answer:
Which lines of code belong together in a block -> Option A
Quick Check:
Indentation = Code blocks [OK]
Hint: Indentation groups code lines into blocks [OK]
Common Mistakes:
Thinking indentation shows variable types
Confusing indentation with execution speed
Assuming indentation names functions
2. Which of the following code snippets has correct indentation in Python?
easy
A.
def greet():
print('Hello')
print('World')
B.
def greet():
print('Hello')
print('World')
C.
def greet():
print('Hello')
print('World')
D.
def greet():
print('Hello')
print('World')
Solution
Step 1: Check indentation inside the function
All lines inside the function must be indented the same amount to belong to the function block.
Step 2: Identify the snippet with consistent indentation
def greet():
print('Hello')
print('World')
has both print statements indented equally under the function, which is correct.
Final Answer:
def greet():\n print('Hello')\n print('World') -> Option D
Quick Check:
Consistent indentation inside function = Correct [OK]
Hint: Indent all block lines equally under the header [OK]
Common Mistakes:
Mixing indentation levels inside a block
Not indenting any lines inside a function
Indenting only some lines inconsistently
3. What will be the output of this code?
for i in range(2):
print('Start')
if i == 0:
print('First loop')
print('End')
medium
A. Start\nFirst loop\nEnd\nStart\nEnd
B. Start\nEnd\nStart\nFirst loop\nEnd
C. Start\nFirst loop\nEnd\nStart\nFirst loop\nEnd
D. Start\nEnd\nStart\nEnd
Solution
Step 1: Trace the loop iterations
The loop runs twice: i=0 and i=1.
Step 2: Check prints for each iteration
For i=0: prints 'Start', then 'First loop' (because i==0), then 'End'. For i=1: prints 'Start' and 'End' only.
Final Answer:
Start\nFirst loop\nEnd\nStart\nEnd -> Option A
Quick Check:
Loop with condition prints extra line only once [OK]
Hint: Follow indentation to see which prints run inside conditions [OK]
Common Mistakes:
Ignoring indentation and printing 'First loop' twice
Mixing order of printed lines
Assuming all prints run every iteration
4. Identify the error in this code:
if True:
print('Yes')
print('Still Yes')
medium
A. SyntaxError because of missing colon
B. IndentationError due to inconsistent indentation
C. No error, code runs fine
D. NameError due to undefined variable
Solution
Step 1: Check indentation after if statement
Lines inside the if block must be indented equally.
Step 2: Identify inconsistent indentation
The first print is not indented, the second print is indented. This causes an IndentationError.
Final Answer:
IndentationError due to inconsistent indentation -> Option B
Quick Check:
Inconsistent indentation = IndentationError [OK]
Hint: All lines in a block must have same indentation [OK]
Common Mistakes:
Thinking missing colon causes error here
Assuming code runs without indentation
Confusing IndentationError with NameError
5. You want to write a function that prints numbers 1 to 3, each followed by 'Done' on a new line. Which code correctly uses indentation to achieve this?
def print_numbers():
for i in range(1, 4):
print(i)
print('Done')
hard
A.
def print_numbers():
for i in range(1, 4):
print(i)
print('Done')
B.
def print_numbers():
for i in range(1, 4):
print(i)
print('Done')
C.
def print_numbers():
for i in range(1, 4):
print(i)
print('Done')
D.
def print_numbers():
for i in range(1, 4):
print(i)
print('Done')
Solution
Step 1: Understand desired output
Each number 1 to 3 should print, then 'Done' on a new line after each number.
Step 2: Check indentation for print statements
To print 'Done' after each number, both print(i) and print('Done') must be inside the for loop, indented equally.
Step 3: Identify correct option
def print_numbers():
for i in range(1, 4):
print(i)
print('Done')
has both prints indented inside the loop, so 'Done' prints after each number.
Final Answer:
def print_numbers():\n for i in range(1, 4):\n print(i)\n print('Done') -> Option C
Quick Check:
Same indentation inside loop = prints per iteration [OK]
Hint: Indent all loop actions equally to repeat each time [OK]
Common Mistakes:
Indenting 'Done' outside loop causing single print