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
Understanding While-else Behavior in Python
📖 Scenario: Imagine you are checking a list of numbers to find if any number is divisible by 7. You want to know if you found such a number or if none exists.
🎯 Goal: You will write a Python program that uses a while loop with an else clause to check numbers and print a message depending on whether a divisible number is found.
📋 What You'll Learn
Create a list called numbers with the exact values: [10, 13, 22, 35, 40]
Create a variable called index and set it to 0
Use a while loop with the condition index < len(numbers)
Inside the loop, check if numbers[index] is divisible by 7 using %
If divisible, print Found a number divisible by 7: <number> and break
Use an else clause on the while loop to print No number divisible by 7 found if loop completes without break
Increment index by 1 inside the loop
💡 Why This Matters
🌍 Real World
Checking lists or data for specific conditions and knowing if none matched is common in data processing and validation.
💼 Career
Understanding loop control and the <code>else</code> clause helps in writing clear and efficient code for tasks like searching, filtering, and error checking.
Progress0 / 4 steps
1
Create the list of numbers
Create a list called numbers with these exact values: [10, 13, 22, 35, 40]
Python
Hint
Use square brackets [] to create a list and separate values with commas.
2
Set up the index variable
Create a variable called index and set it to 0
Python
Hint
Use = to assign the value 0 to the variable index.
3
Write the while loop with else
Write a while loop with the condition index < len(numbers). Inside the loop, check if numbers[index] % 7 == 0. If true, print Found a number divisible by 7: {numbers[index]} and use break. Increment index by 1 inside the loop. Add an else clause on the while loop that prints No number divisible by 7 found.
Python
Hint
Remember the else after a while runs only if the loop did not break.
4
Run the program to see the output
Run the program and print the output. The program should print Found a number divisible by 7: 35.
Python
Hint
If you see this output, your program works correctly!
Practice
(1/5)
1.
What happens to the else block in a while loop if the loop ends normally (without a break)?
easy
A. The else block runs before the loop starts.
B. The else block never runs.
C. The else block runs after the loop finishes all iterations.
D. The else block runs only if the loop has a break.
Solution
Step 1: Understand the while-else structure
The else block after a while loop runs only if the loop finishes all iterations without encountering a break.
Step 2: Analyze loop ending conditions
If the loop ends normally (condition becomes false), the else block executes. If a break occurs, it skips the else.
Final Answer:
The else block runs after the loop finishes all iterations. -> Option C
Quick Check:
while-else else runs if no break [OK]
Hint: Else runs only if while loop ends without break [OK]
Common Mistakes:
Thinking else runs always after while
Believing else runs only if break occurs
Confusing else with finally block
2.
Which of the following is the correct syntax for a while loop with an else block in Python?
?
easy
A. while condition:
# code
else
# code
B. while condition:
else:
# code
# code
C. while condition:
# code
else:
# code
D. while condition:
# code
else:
# code
Solution
Step 1: Recall Python while-else syntax
The else block must be aligned with the while, not indented inside it.
Step 2: Check each option's indentation and keywords
while condition:
# code
else:
# code correctly places else: aligned with while and indents code blocks properly.
Final Answer:
while condition:
# code
else:
# code -> Option D
Quick Check:
Else aligned with while, colon included [OK]
Hint: Else must align with while, not inside loop body [OK]
Common Mistakes:
Indenting else inside while block
Missing colon after else
Placing else before while
3.
What is the output of this code?
i = 0
while i < 3:
print(i)
i += 1
else:
print('Done')
medium
A. 0
1
2
B. 0
1
2
Done
C. Done
D. 0
1
2
3
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 B
Quick Check:
Loop prints 0-2, else prints Done [OK]
Hint: Else runs after loop if no break, prints 'Done' [OK]
Common Mistakes:
Ignoring else block output
Expecting 3 to print inside loop
Thinking else runs only on break
4.
Find the error in this code snippet:
i = 0
while i < 5:
if i == 3:
break
print(i)
i += 1
else:
print('Finished')
medium
A. The else block is not indented properly.
B. The break statement is outside the loop.
C. The while condition is invalid.
D. The print statement inside the loop is missing parentheses.
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 A
Quick Check:
Else must align with while, indentation error [OK]
Hint: Else must align with while, check indentation [OK]
Common Mistakes:
Misplacing else inside loop body
Confusing break placement
Ignoring indentation errors
5.
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?
hard
A. 5
4
Because break stops loop, else does not run.
B. 5
4
3
Loop completed
Because else always runs.
C. 5
4
3
Because break is inside if, else runs anyway.
D. Loop completed
Because else runs before loop.
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 A
Quick Check:
Break skips else, so only 5 and 4 print [OK]
Hint: Break skips else; else runs only if no break [OK]