The while
loop is a powerful tool in Python for controlling the flow of your programs. Unlike for
loops, which iterate over a defined sequence, while
loops continue execution as long as a specified condition remains true. This makes them particularly useful when the number of iterations is unknown beforehand.
Table of Contents
- Basic While Loop Structure
- Controlling Loop Execution:
break
andcontinue
- The
while-else
Construct - Practical Examples
- Avoiding Infinite Loops
Basic While Loop Structure
The fundamental syntax of a while
loop is straightforward:
while condition:
# Code to be executed repeatedly
# ...
The condition
is evaluated before each iteration. If it evaluates to True
, the indented code block is executed. If it evaluates to False
, the loop terminates, and the program continues with the statements following the loop.
Controlling Loop Execution: break
and continue
The break
and continue
statements offer fine-grained control over loop behavior:
break
: Immediately exits the loop, regardless of the condition.continue
: Skips the rest of the current iteration and proceeds to the next iteration.
count = 0
while count < 5:
count += 1
if count == 3:
continue # Skip printing 3
print(count)
while count < 10:
count += 1
if count == 7:
break # Exit the loop when count is 7
print(count)
The while-else
Construct
Python’s while
loop uniquely supports an optional else
block. This else
block executes only if the loop completes *naturally*—that is, when the loop condition becomes False
. Crucially, the else
block is not executed if the loop is terminated using a break
statement. This provides a clean way to handle situations where you need to perform an action only when the loop finishes without interruption.
count = 0
while count < 5:
print(count)
count += 1
else:
print("Loop completed normally!")
count = 0
while count < 5:
if count == 3:
break
print(count)
count += 1
else:
print("Loop did NOT complete normally!") # This won't print
Practical Examples
Here are a couple of examples demonstrating practical uses of while
loops:
Example 1: User Input Validation
while True:
try:
age = int(input("Enter your age: "))
if age >= 0:
break # Exit loop if valid age is entered
else:
print("Age cannot be negative.")
except ValueError:
print("Invalid input. Please enter a number.")
print(f"Your age is: {age}")
Example 2: Simulating a countdown
import time
countdown = 10
while countdown > 0:
print(countdown)
time.sleep(1) # Pause for 1 second
countdown -= 1
print("Blast off!")
Avoiding Infinite Loops
A common pitfall with while
loops is creating an infinite loop—a loop that never terminates. This typically happens when the loop condition never becomes False
. Always ensure your loop condition will eventually evaluate to False
. Carefully examine your loop’s logic and ensure that the variables affecting the condition are updated appropriately within the loop body.