杰瑞科技汇

Python while循环如何正确控制终止条件?

Of course! Let's dive deep into Python's while loop, from the basics to more advanced topics.

What is a while loop?

A while loop is a fundamental control flow structure in programming that repeatedly executes a block of code as long as a certain condition remains true.

Think of it like this: "While the door is unlocked, keep trying to open it." The loop continues only if the condition ("the door is unlocked") is true. Once the condition becomes false ("the door is locked"), the loop stops.


Basic Syntax

The syntax is straightforward:

while condition:
    # Code to be executed repeatedly
    # as long as 'condition' is True

Key components:

  • while: The keyword that starts the loop.
  • condition: An expression that evaluates to either True or False.
  • A colon is required at the end of the while line.
  • Indentation: The code block to be repeated must be indented (usually 4 spaces). This defines what's inside the loop.

A Simple Example: Counting Up

Let's print numbers from 1 to 5.

# Initialize a counter variable
count = 1
# The loop will continue as long as count is less than or equal to 5
while count <= 5:
    print(f"The current count is: {count}")
    # This is the most important part: we must change the variable
    # in the condition, otherwise, it will become an infinite loop!
    count = count + 1
print("Loop has finished.")

Output:

The current count is: 1
The current count is: 2
The current count is: 3
The current count is: 4
The current count is: 5
Loop has finished.

How it works:

  1. count is set to 1.
  2. The condition 1 <= 5 is True, so the code inside the loop runs.
  3. It prints "The current count is: 1".
  4. count is incremented to 2.
  5. The condition 2 <= 5 is True, so the loop runs again.
  6. This continues until count becomes 6.
  7. The condition 6 <= 5 is False, so the loop terminates, and the program moves to the line after the loop.

The Infinite Loop and How to Avoid It

A common mistake for beginners is creating an infinite loop—a loop that never stops because its condition never becomes False.

Example of an infinite loop:

# WARNING: This code will run forever! You will need to stop it manually.
# In most IDEs, you can press the "Stop" button (usually a square icon).
# count = 1
# while count <= 5:
#     print("This will print forever!")
#     # We forgot to increment count, so it's always 1.
#     # The condition 1 <= 5 is always True.

How to avoid infinite loops: Always ensure that something inside the loop changes the variables used in the while condition, so that the condition will eventually become False.


The break Statement

The break statement allows you to exit a while loop immediately, even if the condition is still True. It's useful when you've found what you're looking for or encountered an error.

Example: Finding a number in a list

numbers = [10, 20, 30, 40, 50, 60]
search_for = 40
found = False
i = 0
while i < len(numbers):
    if numbers[i] == search_for:
        print(f"Found {search_for} at index {i}!")
        found = True
        break  # Exit the loop immediately
    i = i + 1
if not found:
    print(f"{search_for} was not found in the list.")

Output:

Found 40 at index 3!

The continue Statement

The continue statement skips the rest of the current iteration and jumps directly to the next check of the while condition.

Example: Printing only odd numbers

number = 0
while number < 10:
    number = number + 1
    # If the number is even, skip the rest of this loop iteration
    if number % 2 == 0:
        continue
    print(number)

Output:

1
3
5
7
9
  • When number is 2, the if condition is true, continue is executed, and the loop jumps back to the top without printing.
  • When number is 3, the if condition is false, so the print statement is executed.

The else Clause with a while Loop

This is a unique and powerful feature in Python. The else block of a while loop is executed only if the loop condition becomes false. It is not executed if the loop is exited by a break statement.

Think of it as "no break was encountered."

Example: Checking for a prime number

num = 13
is_prime = True
i = 2
while i < num:
    if num % i == 0:
        print(f"{num} is not a prime number.")
        is_prime = False
        break  # Found a factor, so it's not prime
    i = i + 1
else:
    # This 'else' belongs to the 'while' loop.
    # It runs ONLY if the loop completed without a 'break'.
    print(f"{num} is a prime number.")
# You can also use a boolean flag, but the 'else' is more elegant.

Output:

13 is a prime number.

If we changed num to 12, the loop would find 12 % 2 == 0, execute break, and the else block would be skipped.


while vs. for Loop: When to Use Which?

Feature while loop for loop
Purpose To repeat code an unknown number of times, based on a condition. To iterate over a known sequence (like a list, tuple, string, or range).
Structure while condition: for item in sequence:
Control You manually manage the loop variable(s). The loop variable is automatically assigned each item from the sequence.
Common Use - Reading user input until they type "quit".
- Waiting for a sensor to reach a certain value.
- Game loops (e.g., while game_is_running:).
- Iterating through a list of items.
- Performing an action a specific number of times (with range()).
- Processing characters in a string.

Rule of Thumb:

  • Use a for loop when you know the number of iterations in advance.
  • Use a while loop when you need to repeat something until a condition is met, and you don't know how many times that will take.
分享:
扫描分享到社交APP
上一篇
下一篇