如何检查 Python 中的循环是否被中断

PythonPythonBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在这个实验中,你将学习如何使用不同的技术来判断 Python 中的循环是否提前中断。本实验重点在于理解 break 语句,以及如何根据特定条件使用它来退出循环。

你将探索两种方法:在中断循环前设置一个标志变量,以及使用 else 子句检测循环是否正常完成。第一种方法是初始化一个标志变量,并在执行 break 语句时将其设置为 True。第二种方法利用 else 子句,该子句仅在循环正常完成且未遇到 break 语句时才会执行。完成本实验后,你将能够有效地检查 Python 中的循环是否被中断,并相应地处理不同的情况。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python/BasicConceptsGroup -.-> python/booleans("Booleans") python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") python/ControlFlowGroup -.-> python/for_loops("For Loops") python/ControlFlowGroup -.-> python/break_continue("Break and Continue") subgraph Lab Skills python/booleans -.-> lab-559539{{"如何检查 Python 中的循环是否被中断"}} python/conditional_statements -.-> lab-559539{{"如何检查 Python 中的循环是否被中断"}} python/for_loops -.-> lab-559539{{"如何检查 Python 中的循环是否被中断"}} python/break_continue -.-> lab-559539{{"如何检查 Python 中的循环是否被中断"}} end

理解 break 语句

在这一步中,你将学习 Python 中的 break 语句。break 语句用于提前退出循环。当你想根据某个条件停止循环迭代时,这会很有用。

首先,使用 VS Code 编辑器在你的 ~/project 目录下创建一个名为 break_example.py 的 Python 文件。

## Filename: break_example.py
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

for number in numbers:
    if number > 5:
        break  ## Exit the loop when number is greater than 5
    print(number)

在这段代码中:

  • 我们有一个包含 1 到 10 的数字列表。
  • 我们使用 for 循环遍历这个列表。
  • 在循环内部,我们检查当前的 number 是否大于 5。
  • 如果数字大于 5,我们使用 break 语句退出循环。
  • 否则,我们打印当前的 number

现在,在终端中使用以下命令运行脚本:

python break_example.py

你应该会看到以下输出:

1
2
3
4
5

如你所见,当遇到数字 6 时,循环停止执行,因为 6 大于 5。break 语句使循环在该点终止。

break 语句可以在 for 循环和 while 循环中使用。它提供了一种根据特定条件退出循环的方法,让你可以控制程序的流程。

在中断前设置标志

在这一步中,你将学习如何使用一个标志变量来指示循环中是否执行了 break 语句。当你需要知道循环是完全执行完毕还是被中断时,这会很有用。

让我们使用 VS Code 编辑器在你的 ~/project 目录下创建一个名为 flag_example.py 的 Python 文件。

## Filename: flag_example.py
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
found = False  ## Initialize a flag variable

for number in numbers:
    if number > 5:
        found = True  ## Set the flag to True when number is greater than 5
        break  ## Exit the loop
    print(number)

if found:
    print("Found a number greater than 5")
else:
    print("No number greater than 5 was found")

在这段代码中:

  • 我们将一个布尔变量 found 初始化为 False。这个变量将作为我们的标志。
  • 我们遍历数字列表。
  • 如果我们找到一个大于 5 的数字,我们将 found 设置为 True,然后跳出循环。
  • 循环结束后,我们检查 found 的值。如果它为 True,则意味着我们遇到了一个大于 5 的数字并跳出了循环。否则,意味着循环在没有找到任何大于 5 的数字的情况下完成。

现在,让我们在终端中使用以下命令运行脚本:

python flag_example.py

你应该会看到以下输出:

1
2
3
4
5
Found a number greater than 5

现在,让我们修改 numbers 列表,使其不包含任何大于 5 的数字:

## Filename: flag_example.py
numbers = [1, 2, 3, 4, 5]
found = False  ## Initialize a flag variable

for number in numbers:
    if number > 5:
        found = True  ## Set the flag to True when number is greater than 5
        break  ## Exit the loop
    print(number)

if found:
    print("Found a number greater than 5")
else:
    print("No number greater than 5 was found")

再次运行脚本:

python flag_example.py

你应该会看到以下输出:

1
2
3
4
5
No number greater than 5 was found

这个示例展示了如何使用标志变量来跟踪是否执行了 break 语句,从而让你可以根据循环是完全执行完毕还是被中断来采取不同的操作。

使用 else 子句检测循环完成情况

在这一步中,你将学习如何在 for 循环中使用 else 子句来检测循环是否在未遇到 break 语句的情况下完成。这是一种简洁而优雅的方式,可让你仅在循环正常结束时执行代码。

让我们使用 VS Code 编辑器在你的 ~/project 目录下创建一个名为 else_example.py 的 Python 文件。

## Filename: else_example.py
numbers = [1, 2, 3, 4, 5]

for number in numbers:
    if number > 5:
        print("Found a number greater than 5")
        break
    print(number)
else:
    print("No number greater than 5 was found")

在这段代码中:

  • 我们遍历数字列表。
  • 如果找到一个大于 5 的数字,我们会打印一条消息并跳出循环。
  • else 子句与 for 循环关联。只有当循环在未遇到 break 语句的情况下完成时,它才会被执行。

现在,让我们在终端中使用以下命令运行脚本:

python else_example.py

你应该会看到以下输出:

1
2
3
4
5
No number greater than 5 was found

else 子句被执行了,因为循环在未找到任何大于 5 的数字的情况下完成。

现在,让我们修改 numbers 列表,使其包含一个大于 5 的数字:

## Filename: else_example.py
numbers = [1, 2, 3, 4, 5, 6]

for number in numbers:
    if number > 5:
        print("Found a number greater than 5")
        break
    print(number)
else:
    print("No number greater than 5 was found")

再次运行脚本:

python else_example.py

你应该会看到以下输出:

1
2
3
4
5
Found a number greater than 5

在这种情况下,else 子句没有被执行,因为循环被 break 语句终止了。

for 循环中使用 else 子句提供了一种简洁的方式,可在循环正常完成(即未被 break 语句中断)时执行代码。这可以使你的代码更具可读性,更易于理解。

总结

在本次实验中,你学习了如何在 Python 中使用 break 语句,根据特定条件提前退出循环。break 语句可用于 for 循环和 while 循环,以控制程序的流程。

此外,你还了解了如何使用标志变量来跟踪循环中是否执行了 break 语句,从而判断循环是完全执行完毕还是被中断。