1. Why Do We Need Loops?¶
In programming, we often need to repeat a block of code. For example: printing numbers from 1 to 10, processing each element in a list, or asking the user for input until a condition is met. Loops solve this problem by allowing us to perform repetitive tasks with fewer lines of code, avoiding redundant logic.
Python offers two basic loop structures: for loops and while loops. Each has unique characteristics and use cases.
2. for Loop: A “Repeater” for Iterables¶
The for loop is used to iterate over an iterable (e.g., a list, string, or number sequence). It executes the loop body once for each element in the iterable.
2.1 Basic Syntax¶
for 变量 in 可迭代对象:
# Loop body (indented code block)
perform operation
What is an iterable? An object that can be “traversed element by element,” such as a list ([1,2,3]), string ("hello"), or number sequence generated by range.
2.2 Common Examples¶
Example 1: Print numbers 1 to 5
Use range(1, 6) to generate numbers from 1 to 5 (note: range(a, b) includes a but excludes b):
for num in range(1, 6): # num takes 1, 2, 3, 4, 5 in sequence
print(num)
# Output: 1 2 3 4 5
Example 2: Calculate average scores
Process each element in a list:
scores = [90, 85, 95, 80]
total = 0
for score in scores: # score takes 90, 85, 95, 80 in sequence
total += score # Accumulate each score
average = total / len(scores)
print("Average score:", average) # Output: Average score: 87.5
Example 3: Iterate over a string
Strings are iterable, so for loops extract characters one by one:
message = "Python"
for char in message:
print(char)
# Output: P, y, t, h, o, n (each character on a new line)
3. while Loop: A “Repeating Switch” Controlled by Conditions¶
The while loop repeats the loop body as long as a condition is True. It stops when the condition becomes False.
3.1 Basic Syntax¶
while condition:
# Loop body (indented code block)
perform operation
# (Critical! Modify the condition variable inside the loop to avoid infinite loops)
Key point: The loop’s termination depends on the condition. Always ensure the condition will eventually become False, or the loop will run infinitely.
3.2 Common Examples¶
Example 1: Sum 1 to 10
Use while to accumulate numbers until count exceeds 10:
count = 1
total = 0
while count <= 10: # Condition: count does not exceed 10
total += count # Accumulate current count
count += 1 # Update the condition variable
print("Total:", total) # Output: Total: 55
Example 2: Validate user input (until correct password)
Wait for the user to enter a password until it matches the target:
password = "123456"
user_input = ""
while user_input != password: # Loop until input matches password
user_input = input("Enter password: ")
if user_input != password:
print("Incorrect password, try again!")
print("Password correct, welcome!")
4. for Loop vs. while Loop: Core Differences¶
| Comparison | for Loop | while Loop |
|---|---|---|
| Loop Basis | Iterate over an iterable (e.g., list, string, range) | Check if a condition is True (controlled manually) |
| Number of Iterations | Fixed (determined by the iterable’s length) | Variable (depends on condition; may be infinite) |
| Use Cases | When you know the exact elements to process (e.g., list elements) | When the number of iterations is unknown but a termination condition exists (e.g., user input) |
5. Application Scenarios Summary¶
Use for loops when:
- You need to iterate over a sequence (e.g., process a “student names list”).
- Generate a known numerical range (e.g., “print even numbers from 1 to 100” with range).
- Process iterables (e.g., dictionary keys, values, or key-value pairs).
Use while loops when:
- The number of iterations is unknown but a termination condition exists (e.g., “until the user enters the correct password”).
- You need to “wait for an event” (e.g., “monitor if a file is updated”).
- The condition depends on previous operations (e.g., “accumulate until the total exceeds 100”).
6. Pitfalls: Common Mistakes for Beginners¶
-
Infinite while loop: Forgetting to update the condition variable inside the loop.
Example:count = 1; while count <= 10: print(count);(nocount += 1→ infinite loop). -
for loop with non-iterable types:
foronly works with iterables. Iterating over a number (e.g.,for num in 10) will cause an error. -
Incorrect range parameters:
range(a, b)requiresa < b; otherwise, it generates an empty sequence (e.g.,range(5, 1)loops never).
7. Practice Exercises¶
Try implementing “Print the squares of numbers 1 to 10” with both loops:
- for loop: Use range(1, 11) to iterate, then compute num * num.
- while loop: Initialize count = 1, compute the square in the loop, and increment count until count > 10.
Loops are fundamental for handling repetitive tasks. By choosing for (when iterating) or while (when conditions control termination), you can write efficient and clean code!