Python跳出多重循环的三种实用方法

阿橙
阿橙
发布时间:2026-10-13| 5人浏览过
原创

本文详细介绍Python中跳出多重嵌套循环的三种常用方法:通过自定义异常抛出、将循环逻辑封装为函数并返回、以及利用for...else语句配合break。重点解析for...else的执行机制,帮助开发者在复杂嵌套场景下高效控制程序流程。

Python跳出多重循环的三种方法

方法1:利用自定义异常

方法一:自定义异常处理


# -*- coding:utf-8 -*-
 
"""
功能:python跳出循环
"""
# 方法1:自定义异常
 
 
class Getoutofloop(Exception):
  pass
try:
  for i in range(5):
    for j in range(5):
      if i == j == 2:
        raise Getoutofloop()
      else:
        print i, '----', j
except Getoutofloop:
  pass

方法2:将循环逻辑封装为函数,通过return语句退出

方法二:函数封装与return


# -*- coding:utf-8 -*-
 
"""
功能:python跳出循环
"""
# 方法2:封装为函数,return
 
 
def test():
  for i in range(5):
    for j in range(5):
      if i == j == 2:
        return
      else:
        print i, '----', j
 
test()

方法3:使用for...else...语句结构

方法三:for...else语句机制


# -*- coding:utf-8 -*-
 
"""
功能:python跳出循环
"""
# 方法2:for...else...用法,用于跳出指定循环层
 
for i in range(5):
  for j in range(5):
    for k in range(5):
      if i == j == k == 3:
        break
      else:  
        print i, '----', j, '----', k
    else:    # else1
      continue
    break    # break1
  else:      # else2
    continue
  break      # break2

方法3原理解析: (1)break语句仅能终止当前所在的这一层循环(即跳过该层本次及剩余的迭代),但无法直接跳出外层循环。

举例说明,当最内层的第3重循环执行break后,程序控制流会回到第2重循环,继续执行第2重循环的下一次迭代,随后第3重循环会再次被触发执行。

(2)continue语句用于跳过当前循环的某一次迭代,但该层循环的剩余迭代次数仍会继续执行。

(3)for...else结构中的else块,仅在for循环完整遍历完所有元素且未被break中断时才会执行;若循环过程中遇到break,else块将被跳过。

(4)在方法3的实现中,当第3重循环满足条件i == j == k == 3时,触发break,导致并列的else1被跳过,进而执行break1,这使得第2重循环终止。

由于第2重循环被break1终止,其对应的else2也被跳过,从而执行break2,最终导致第1重循环终止。

通过这种层层传递的break机制,最终实现了跳出整个多重循环的目标。

for...else结合break的示例代码:

for...else语句详细示例


# -*- coding:utf-8 -*-
 
"""
功能:for...else语句
"""
 
for i in range(5):
  print i
else:
  print u"循环完整执行一次。"
 
for j in range(6):
  for k in range(6):
    print j, k
    if j == 3:
      print u"内重循环即将被break"
      break
  else:
    print u"内重循环完整执行一次。"
else:
  print u"外重循环完整执行一次。"

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。