The else part after a while loop runs only if the loop finishes normally without being stopped early.
While–else behavior in Python
Start learning this pattern below
Jump into concepts and practice - no test required
while condition: # code to repeat else: # code to run if loop ends normally
The else block runs only if the while loop condition becomes false.
If the loop is stopped by a break, the else block does not run.
count = 0 while count < 3: print(count) count += 1 else: print('Loop finished')
count = 0 while count < 3: if count == 1: break print(count) count += 1 else: print('Loop finished')
This program counts down from 5 to 1, then prints a message after the loop ends normally.
n = 5 while n > 0: print(n) n -= 1 else: print('Done counting down!')
Remember, else after while is not like an if condition; it runs only if no break happens.
You can use while-else to detect if a search loop found what it was looking for or not.
The else block after a while runs only if the loop ends without break.
Use it to run code after a loop finishes all its cycles.
It helps avoid extra flags to check loop completion.
Practice
What happens to the else block in a while loop if the loop ends normally (without a break)?
Solution
Step 1: Understand the while-else structure
Theelseblock after awhileloop runs only if the loop finishes all iterations without encountering abreak.Step 2: Analyze loop ending conditions
If the loop ends normally (condition becomes false), theelseblock executes. If abreakoccurs, it skips theelse.Final Answer:
The else block runs after the loop finishes all iterations. -> Option CQuick Check:
while-else else runs if no break [OK]
- Thinking else runs always after while
- Believing else runs only if break occurs
- Confusing else with finally block
Which of the following is the correct syntax for a while loop with an else block in Python?
?
Solution
Step 1: Recall Python while-else syntax
Theelseblock must be aligned with thewhile, not indented inside it.Step 2: Check each option's indentation and keywords
while condition: # code else: # code correctly placeselse:aligned withwhileand indents code blocks properly.Final Answer:
while condition: # code else: # code -> Option DQuick Check:
Else aligned with while, colon included [OK]
- Indenting else inside while block
- Missing colon after else
- Placing else before while
What is the output of this code?
i = 0
while i < 3:
print(i)
i += 1
else:
print('Done')Solution
Step 1: Trace the while loop iterations
Variable i starts at 0 and increments by 1 each loop until i < 3 is false. It prints 0, 1, 2.Step 2: Check else block execution
Since the loop ends normally (i becomes 3, condition false), the else block runs and prints 'Done'.Final Answer:
0 1 2 Done -> Option BQuick Check:
Loop prints 0-2, else prints Done [OK]
- Ignoring else block output
- Expecting 3 to print inside loop
- Thinking else runs only on break
Find the error in this code snippet:
i = 0
while i < 5:
if i == 3:
break
print(i)
i += 1
else:
print('Finished')Solution
Step 1: Check indentation of else block
The else block must be aligned with the while statement, but here it is not indented properly.Step 2: Verify other parts
Break is inside the loop, while condition is valid, and print uses parentheses correctly.Final Answer:
The else block is not indented properly. -> Option AQuick Check:
Else must align with while, indentation error [OK]
- Misplacing else inside loop body
- Confusing break placement
- Ignoring indentation errors
Consider this code:
n = 5
while n > 0:
if n == 3:
break
print(n)
n -= 1
else:
print('Loop completed')What will be the output and why?
Solution
Step 1: Trace loop iterations and break
n starts at 5, prints 5 and 4. When n == 3, break stops the loop immediately.Step 2: Understand else block behavior
Because the loop was stopped by break, the else block does not run, so 'Loop completed' is not printed.Final Answer:
5 4 Because break stops loop, else does not run. -> Option AQuick Check:
Break skips else, so only 5 and 4 print [OK]
- Assuming else runs even after break
- Printing 3 inside loop
- Thinking else runs before loop
