Bird
Raised Fist0
Pythonprogramming~10 mins

Nested for loop execution in Python - Step-by-Step Execution

Choose your learning style10 modes available

Start learning this pattern below

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
Concept Flow - Nested for loop execution
Start outer loop i=0
Start inner loop j=0
Execute inner loop body
Update inner loop j=j+1
Check inner loop j < limit?
NoEnd inner loop
Yes
Update outer loop i=i+1
Check outer loop i < limit?
NoEnd outer loop
Back to inner loop body
The outer loop starts and for each iteration, the inner loop runs completely before the outer loop moves to the next iteration.
Execution Sample
Python
for i in range(2):
    for j in range(3):
        print(i, j)
Print pairs of i and j where i goes from 0 to 1 and j goes from 0 to 2 for each i.
Execution Table
StepijCondition i < 2Condition j < 3ActionOutput
100TrueTruePrint (0,0)(0, 0)
201TrueTruePrint (0,1)(0, 1)
302TrueTruePrint (0,2)(0, 2)
403TrueFalseInner loop ends
510TrueTruePrint (1,0)(1, 0)
611TrueTruePrint (1,1)(1, 1)
712TrueTruePrint (1,2)(1, 2)
813TrueFalseInner loop ends
920FalseN/AOuter loop ends
💡 Outer loop i=2 is not less than 2, so the loop ends.
Variable Tracker
VariableStartAfter 1After 2After 3After 4After 5After 6After 7Final
iN/A00001112
jN/A01230123
Key Moments - 3 Insights
Why does j reset to 0 after the inner loop ends?
Because the inner loop starts fresh for each new i in the outer loop, as shown in steps 4 to 5 in the execution_table where j goes from 3 (end) back to 0.
Why does the outer loop increment only after the inner loop finishes?
The outer loop waits for the inner loop to complete all its iterations before increasing i, as seen between steps 4 and 5 where inner loop ends before i increments.
What happens when the inner loop condition j < 3 becomes false?
The inner loop stops running and control returns to the outer loop to increment i, as shown in steps 4 and 8 where j=3 causes inner loop to end.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the value of j at step 6?
A2
B0
C1
D3
💡 Hint
Check the 'j' column in execution_table row for step 6.
At which step does the outer loop condition become false?
AStep 9
BStep 8
CStep 4
DStep 3
💡 Hint
Look at the 'Condition i < 2' column in execution_table to find when it is False.
If the inner loop range changed to 2, how many total print outputs would there be?
A3
B4
C6
D2
💡 Hint
Multiply outer loop count (2) by new inner loop count (2) to find total prints.
Concept Snapshot
Nested for loops run one loop inside another.
Outer loop runs first, then inner loop runs fully each time.
Syntax: for i in range(...): for j in range(...):
Inner loop resets each outer loop iteration.
Useful for grids, tables, or combinations.
Full Transcript
This visual execution shows how nested for loops work in Python. The outer loop variable i starts at 0 and runs while less than 2. For each i, the inner loop variable j runs from 0 to 2. Each step prints the current i and j values. When j reaches 3, the inner loop ends and i increments. When i reaches 2, the outer loop ends. Variables i and j change as shown in the variable tracker. Key moments explain why j resets and how loops end. The quiz tests understanding of variable values and loop conditions.

Practice

(1/5)
1. What does a nested for loop do in Python?
for i in range(2):
for j in range(3):
print(i, j)
easy
A. Runs the inner loop fully for each outer loop step
B. Runs both loops only once
C. Runs the outer loop fully for each inner loop step
D. Runs only the outer loop

Solution

  1. Step 1: Understand nested loop structure

    The outer loop runs 2 times (i=0,1). For each i, the inner loop runs 3 times (j=0,1,2).
  2. Step 2: Observe loop execution order

    For each i, the inner loop completes all its iterations before the outer loop moves to next i.
  3. Final Answer:

    Runs the inner loop fully for each outer loop step -> Option A
  4. Quick Check:

    Inner loop runs fully per outer loop [OK]
Hint: Inner loop runs completely inside each outer loop step [OK]
Common Mistakes:
  • Thinking outer loop runs inside inner loop
  • Assuming loops run only once
  • Confusing loop order
2. Which of the following is the correct syntax for a nested for loop in Python?
easy
A. for i in range(3): for j in range(2): print(i, j)
B. for i in range(3): for j in range(2): print(i, j)
C. for i in range(3): for j in range(2): print(i, j)
D. for i in range(3): for j in range(2): print(i, j)

Solution

  1. Step 1: Check indentation rules

    Python requires consistent indentation to define nested blocks. Inner loop must be indented inside outer loop.
  2. Step 2: Identify correct indentation

    for i in range(3): for j in range(2): print(i, j) uses 4 spaces indentation for inner loop and print statement, which is correct.
  3. Final Answer:

    for i in range(3):\n for j in range(2):\n print(i, j) -> Option B
  4. Quick Check:

    Proper indentation = for i in range(3): for j in range(2): print(i, j) [OK]
Hint: Indent inner loop inside outer loop with spaces [OK]
Common Mistakes:
  • Missing indentation for inner loop
  • Incorrect indentation for print
  • Writing loops on same line without colon
3. What is the output of this code?
for i in range(2):
    for j in range(2):
        print(i + j, end=' ')
    print()
medium
A. 0 1 \n0 1
B. 1 2 \n2 3
C. 0 1 1 2
D. 0 1 \n1 2

Solution

  1. Step 1: Calculate inner loop sums for i=0

    j=0: 0+0=0, j=1: 0+1=1 -> prints '0 1 '
  2. Step 2: Calculate inner loop sums for i=1

    j=0: 1+0=1, j=1: 1+1=2 -> prints '1 2 '
  3. Final Answer:

    0 1 \n1 2 -> Option D
  4. Quick Check:

    Sum of i and j per line = 0 1 \n1 2 [OK]
Hint: Add i and j for each inner loop iteration [OK]
Common Mistakes:
  • Ignoring print() creates new line
  • Adding values incorrectly
  • Confusing end=' ' usage
4. Find the error in this nested loop code:
for i in range(3):
for j in range(2):
    print(i, j)
medium
A. print statement should be outside loops
B. Missing colon after inner for loop
C. Inner loop not indented inside outer loop
D. range(2) should be range(3)

Solution

  1. Step 1: Check indentation of inner loop

    Inner for loop must be indented inside outer loop to be nested properly.
  2. Step 2: Identify correct indentation

    Here, inner loop is at same level as outer loop, causing IndentationError.
  3. Final Answer:

    Inner loop not indented inside outer loop -> Option C
  4. Quick Check:

    Indent inner loop inside outer loop [OK]
Hint: Indent inner loop under outer loop to fix error [OK]
Common Mistakes:
  • Not indenting inner loop
  • Misplacing colons
  • Wrong range values
5. How many times will the print statement execute in this nested loop?
for i in range(4):
    for j in range(3):
        for k in range(2):
            print(i, j, k)
hard
A. 24
B. 12
C. 36
D. 9

Solution

  1. Step 1: Calculate iterations of each loop

    Outer loop: 4 times (i=0..3), middle loop: 3 times (j=0..2), inner loop: 2 times (k=0..1).
  2. Step 2: Multiply iterations for total prints

    Total = 4 * 3 * 2 = 24 print executions.
  3. Step 3: Re-check options

    36 says 36, but calculation is 24, so correct is 24.
  4. Final Answer:

    24 -> Option A
  5. Quick Check:

    4*3*2 = 24 prints [OK]
Hint: Multiply all loop ranges for total executions [OK]
Common Mistakes:
  • Adding instead of multiplying loop counts
  • Counting only outer loops
  • Misreading loop ranges