Bird
Raised Fist0
Pythonprogramming~10 mins

Iteration using range() 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 - Iteration using range()
Start: i = 0
Check: i < stop?
NoExit loop
Yes
Execute loop body
Update: i = i + 1
Back to Check
The loop starts with i at 0, checks if i is less than stop value, runs the loop body if yes, then increases i by 1 and repeats until the condition is false.
Execution Sample
Python
for i in range(3):
    print(i)
This code prints numbers 0, 1, and 2 by looping over range(3).
Execution Table
Iterationi valueCondition (i < 3)ActionOutput
10TruePrint i0
21TruePrint i1
32TruePrint i2
43FalseExit loop
💡 i reaches 3, condition 3 < 3 is False, loop ends
Variable Tracker
VariableStartAfter 1After 2After 3Final
i0 (initial)1233 (loop ends)
Key Moments - 3 Insights
Why does the loop stop when i equals 3?
Because the condition i < 3 becomes False at i = 3, so the loop exits as shown in execution_table row 4.
Does the loop include the stop value 3 in the output?
No, the loop runs while i is less than 3, so it stops before reaching 3, as seen in the outputs 0, 1, 2.
What happens if range(3) is changed to range(5)?
The loop will run 5 times with i from 0 to 4, increasing the number of rows in execution_table accordingly.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the value of i at iteration 2?
A0
B1
C2
D3
💡 Hint
Check the 'i value' column in execution_table row for iteration 2.
At which iteration does the condition become false and the loop stops?
A4
B3
C2
D1
💡 Hint
Look at the 'Condition' and 'Action' columns in execution_table to find when the loop exits.
If we change range(3) to range(2), how many times will the loop run?
A1 time
B3 times
C2 times
D0 times
💡 Hint
Refer to variable_tracker to see how i changes with different range values.
Concept Snapshot
for i in range(stop):
    # loop body

- i starts at 0
- runs while i < stop
- increments i by 1 each loop
- stop value is NOT included
- prints 0 to stop-1
Full Transcript
This visual trace shows how a for loop with range(stop) works in Python. The loop starts with i at 0 and runs as long as i is less than the stop value. Each iteration prints the current i and then increases i by 1. When i reaches the stop value, the condition becomes false and the loop ends. The execution table tracks each iteration's i value, condition check, action, and output. The variable tracker shows how i changes step by step. Key moments clarify why the loop stops before reaching the stop value and what happens if the range changes. The quiz tests understanding of i values and loop stopping conditions.

Practice

(1/5)
1. What does range(5) do in a Python for loop?
easy
A. Generates numbers from 0 to 4
B. Generates numbers from 1 to 5
C. Generates numbers from 0 to 5
D. Generates numbers from 1 to 4

Solution

  1. Step 1: Understand the range function

    range(5) starts at 0 by default and stops before 5.
  2. Step 2: Identify the numbers generated

    The numbers generated are 0, 1, 2, 3, 4.
  3. Final Answer:

    Generates numbers from 0 to 4 -> Option A
  4. Quick Check:

    range(5) = 0,1,2,3,4 [OK]
Hint: Remember range stops before the end number [OK]
Common Mistakes:
  • Thinking range(5) includes 5
  • Starting count at 1 by default
  • Confusing stop value as inclusive
2. Which of the following is the correct syntax to loop 3 times using range()?
easy
A. for i in range(1, 3):
B. for i in range(3):
C. for i in range(0, 3, 2):
D. for i in range(3, 0):

Solution

  1. Step 1: Check each range syntax

    for i in range(1, 3): loops from 1 to 2 (2 times), for i in range(3): loops 0 to 2 (3 times), for i in range(0, 3, 2): loops 0 and 2 (2 times), for i in range(3, 0): runs zero times because start > stop without negative step.
  2. Step 2: Identify the correct loop count

    Only for i in range(3): loops exactly 3 times: 0,1,2.
  3. Final Answer:

    for i in range(3): -> Option B
  4. Quick Check:

    range(3) loops 3 times [OK]
Hint: range(n) loops exactly n times starting at 0 [OK]
Common Mistakes:
  • Using range(1, 3) which loops 2 times
  • Using invalid range with start > stop
  • Confusing step parameter
3. What is the output of this code?
for i in range(2, 7, 2):
    print(i, end=' ')
medium
A. 0 2 4 6
B. 2 3 4 5 6
C. 2 4 6 8
D. 2 4 6

Solution

  1. Step 1: Understand the range parameters

    range(2, 7, 2) starts at 2, stops before 7, stepping by 2.
  2. Step 2: List the numbers generated

    Numbers are 2, 4, 6.
  3. Final Answer:

    2 4 6 -> Option D
  4. Quick Check:

    range(2,7,2) = 2,4,6 [OK]
Hint: Start, stop, step control numbers generated [OK]
Common Mistakes:
  • Including 7 in output
  • Using wrong step size
  • Starting from 0 instead of 2
4. Find the error in this code:
for i in range(5, 1):
    print(i)
medium
A. No error, prints 5 to 1
B. SyntaxError due to wrong range syntax
C. Loop does not run because start > stop without step
D. Infinite loop

Solution

  1. Step 1: Analyze the range parameters

    range(5, 1) means start at 5, stop before 1, with default step 1.
  2. Step 2: Understand loop behavior

    Since start is greater than stop and step is positive, the loop runs zero times.
  3. Final Answer:

    Loop does not run because start > stop without step -> Option C
  4. Quick Check:

    range(5,1) empty range [OK]
Hint: Positive step needs start < stop to run [OK]
Common Mistakes:
  • Expecting loop to run backwards
  • Thinking syntax error occurs
  • Assuming infinite loop
5. You want to print all odd numbers from 1 to 15 using range(). Which code does this correctly?
hard
A. for i in range(1, 16, 2): print(i)
B. for i in range(0, 15, 2): print(i)
C. for i in range(1, 15): if i % 2 == 1: print(i)
D. for i in range(1, 16): print(i % 2)

Solution

  1. Step 1: Identify odd numbers range

    Odd numbers from 1 to 15 are 1,3,5,...,15.
  2. Step 2: Check each option

    for i in range(1, 16, 2): print(i) uses range(1,16,2) which generates 1,3,5,...,15 directly. for i in range(0, 15, 2): print(i) starts at 0 (even). for i in range(1, 15): if i % 2 == 1: print(i) misses 15 (range(1,15) goes to 14) and uses extra if check. for i in range(1, 16): print(i % 2) prints 1 or 0, not numbers.
  3. Final Answer:

    for i in range(1, 16, 2): print(i) -> Option A
  4. Quick Check:

    range(1,16,2) = odd numbers [OK]
Hint: Use step=2 starting at 1 for odd numbers [OK]
Common Mistakes:
  • Starting at 0 for odd numbers
  • Forgetting to include last number
  • Printing modulo instead of number