while True pattern in Python - Time & Space Complexity
Start learning this pattern below
Jump into concepts and practice - no test required
We want to understand how long a program using a while True loop runs as the input changes.
Specifically, we ask: how does the number of steps grow when the input size grows?
Analyze the time complexity of the following code snippet.
count = 0
while True:
if count == n:
break
count += 1
This code counts up from zero until it reaches n, then stops.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: The
while Trueloop runs repeatedly. - How many times: It runs until
countreachesn, so aboutntimes.
As n gets bigger, the loop runs more times, growing in a straight line.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | About 10 loops |
| 100 | About 100 loops |
| 1000 | About 1000 loops |
Pattern observation: The number of steps grows directly with n.
Time Complexity: O(n)
This means the time to finish grows in a straight line as the input n grows.
[X] Wrong: "Since the loop is while True, it runs forever and time is infinite."
[OK] Correct: The loop has a clear stop condition inside that breaks it when count reaches n. So it does not run forever.
Understanding how loops with break conditions work helps you explain how your code runs efficiently in real projects.
"What if we changed the break condition to stop when count reaches n*n? How would the time complexity change?"
Practice
What does the while True loop do in Python?
Solution
Step 1: Understand the meaning of
The conditionwhile TrueTrueis always true, so the loop will keep running forever.Step 2: Recognize how to stop the loop
To stop this infinite loop, abreakstatement is used inside the loop when a condition is met.Final Answer:
It creates a loop that runs forever unless stopped bybreak. -> Option AQuick Check:
while True= infinite loop untilbreak[OK]
while True loops forever until break stops it [OK]- Thinking it runs only once
- Assuming it runs a fixed number of times
- Believing it causes a syntax error
Which of the following is the correct syntax to stop a while True loop when a variable count reaches 5?
count = 0
while True:
count += 1
?Solution
Step 1: Identify correct comparison operator
Use==to compare values, soif count == 5is correct.Step 2: Use
Thebreakto exit the loopbreakstatement stops the loop immediately when the condition is true.Final Answer:
if count == 5: break -> Option AQuick Check:
Use==andbreakto stop loop [OK]
- Using single equals (=) instead of double equals (==)
- Using continue instead of break
- Using undefined commands like stop
What will be the output of the following code?
i = 0
while True:
i += 2
if i > 6:
break
print(i)Solution
Step 1: Trace the loop increments
i starts at 0, then increases by 2 each loop: 2, 4, 6, 8.Step 2: Check the break condition
The loop breaks when i > 6, which happens when i becomes 8.Final Answer:
6 -> Option BQuick Check:
Loop stops at i=8 because 8 > 6, but the printed value is the last before break, which is 6 [OK]
- Stopping at i=6 instead of i=8
- Printing before break
- Confusing break condition with >= instead of >
Find the error in this code snippet:
count = 0
while True
count += 1
if count == 3:
break
print(count)Solution
Step 1: Check syntax of
Python requires a colon (:) afterwhilestatementwhile Trueto start the loop block.Step 2: Verify other parts
Indentation and comparison operator are correct;breakis present.Final Answer:
Missing colon afterwhile True-> Option DQuick Check:
Loops need colon after condition [OK]
- Forgetting colon after while
- Misaligning indentation
- Confusing = and == in conditions
You want to write a program that keeps asking the user to enter a number until they enter a negative number. Which code snippet correctly uses while True to do this?
Solution
Step 1: Check loop condition and input
while True: num = int(input('Enter number: ')) if num < 0: break print(f'You entered {num}') useswhile Trueand asks for input inside the loop, converting it to int.Step 2: Verify break condition and output
It breaks when the number is negative (< 0) and prints the number otherwise.Final Answer:
while True: num = int(input('Enter number: ')) if num < 0: break print(f'You entered {num}') -> Option CQuick Check:
Break on negative input inside infinite loop [OK]
- Breaking on wrong condition (positive instead of negative)
- Not converting input to int
- Missing print statement or break
