Counter-based while loop in Python - Time & Space Complexity
Start learning this pattern below
Jump into concepts and practice - no test required
We want to understand how the time it takes to run a counter-based while loop changes as the number it counts to gets bigger.
How does the number of steps grow when the loop runs more times?
Analyze the time complexity of the following code snippet.
count = 0
limit = 100
while count < limit:
print(count)
count += 1
This code counts from 0 up to one less than the limit, printing each number.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: The while loop runs repeatedly.
- How many times: It runs once for each number from 0 up to (limit - 1).
Each time the limit gets bigger, the loop runs more times in a straight line.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | About 10 times |
| 100 | About 100 times |
| 1000 | About 1000 times |
Pattern observation: The number of steps grows directly with the input size.
Time Complexity: O(n)
This means the time to finish grows in a straight line as the limit gets bigger.
[X] Wrong: "The loop runs a fixed number of times no matter the limit."
[OK] Correct: The loop actually runs once for each number up to the limit, so bigger limits mean more steps.
Understanding how loops grow with input size helps you explain your code clearly and shows you know how programs behave as data grows.
"What if we changed the loop to count down from the limit to zero? How would the time complexity change?"
Practice
What is the main purpose of a counter in a while loop?
Solution
Step 1: Understand the role of a counter
A counter is a variable that counts how many times the loop runs.Step 2: Identify the purpose in a while loop
The counter helps the loop know when to stop by checking its value in the condition.Final Answer:
To keep track of how many times the loop has run -> Option AQuick Check:
Counter tracks loop runs = D [OK]
- Thinking counter stores final result
- Confusing counter with printing inside loop
- Believing counter stops program immediately
Which of the following is the correct syntax to start a counter at 0 before a while loop?
?
Solution
Step 1: Identify correct variable assignment
To start a counter, assign 0 using a single equal sign:counter = 0.Step 2: Check other options for syntax errors
while counter = 0: uses assignment in while condition (invalid), C uses comparison, D uses walrus operator incorrectly here.Final Answer:
counter = 0 -> Option DQuick Check:
Assign counter with = 0 before loop = A [OK]
- Using == instead of = for assignment
- Trying to assign inside while condition
- Confusing walrus operator usage
What will be the output of this code?
counter = 1
while counter <= 3:
print(counter)
counter += 1Solution
Step 1: Trace the loop iterations
Counter starts at 1, prints 1, then increments to 2, prints 2, increments to 3, prints 3, then increments to 4.Step 2: Check loop condition
Loop stops when counter is 4 because 4 <= 3 is false. So printed numbers are 1, 2, 3.Final Answer:
1 2 3 -> Option AQuick Check:
Prints 1 to 3 with counter increment = C [OK]
- Including 4 in output
- Starting count from 0 instead of 1
- Printing numbers in reverse
Find the error in this code and choose the fix:
counter = 0
while counter < 5
print(counter)
counter += 1Solution
Step 1: Identify syntax error in while loop
The while statement is missing a colon ':' at the end of the condition line.Step 2: Check other options
Changing < to <= is not an error fix, initializing counter differently or removing increment causes logic errors.Final Answer:
Add a colon ':' after the while condition -> Option CQuick Check:
Missing colon causes syntax error = B [OK]
- Forgetting colon after while condition
- Changing loop logic instead of fixing syntax
- Removing counter increment causing infinite loop
Write a counter-based while loop that prints only even numbers from 2 to 10 inclusive.
counter = 2
while counter <= 10:
print(counter)
? What should replace ? to correctly increment the counter?Solution
Step 1: Understand the goal
We want to print even numbers from 2 to 10, so counter should increase by 2 each time.Step 2: Choose correct increment
Usingcounter += 2moves counter from 2 to 4, 6, 8, 10 correctly.Final Answer:
counter += 2 -> Option BQuick Check:
Increment by 2 to print evens = A [OK]
- Incrementing by 1 prints odd numbers too
- Multiplying counter causes wrong jumps
- Decrementing counter causes infinite loop
