当前位置: 首页 > article >正文

Python break用法详解

Python 语言没有提供 goto 语句来控制程序的跳转,这种做法虽然提高了程序流程控制的可读性,但降低了灵活性。为了弥补这种不足,Python 提供了 continue 和 break 来控制循环结构。本节先讲解 break 的用法。

某些时候,需要在某种条件出现时强行中止循环,而不是等到循环条件为 False 时才退出循环。此时,可以使用 break 来完成这个功能。

break 用于完全结束一个循环,跳出循环体。不管是哪种循环,一旦在循环体中遇到 break,系统就将完全结束该循环,开始执行循环之后的代码。例如如下程序:

# 一个简单的for循环
for i in range(0, 10) :
    print("i的值是: ", i)
    if i == 2 :
        # 执行该语句时将结束循环
        break

运行上面程序,将看到 i 循环到 2 时即结束,因为当 i 等于 2 时,在循环体内遇到了 break 语句,程序跳出该循环。
对于带 else 块的 for 循环,如果使用 break 强行中止循环,程序将不会执行 else 块。例如如下程序:

# 一个简单的for循环
for i in range(0, 10) :
    print("i的值是: ", i)
    if i == 2 :
        # 执行该语句时将结束循环
        break
else:
    print('else块: ', i)

上面程序同样会在 i 等于 2 时跳出循环,而且此时 for 循环不会执行 else 块。

在使用 break 语句的情况下,循环的 else 代码块与直接放在循环体后是有区别的,即如果将代码块放在 else 块中,当程序使用 break 中止循环时,循环不会执行 else 块;如果将代码块直接放在循环体后面,当程序使用 break 中止循环时,程序自然会执行循环体之后的代码块。

Python 的 break 语句不能像其他语言一样使用标签,因此它只可以结束其所在的循环,不可以结束嵌套循环的外层循环。

为了使用 break 语句跳出嵌套循环的外层循环,可先定义 bool 类型的变量来标志是否需要跳出外层循环,然后在内层循环、外层循环中分别使用两条 break 语句来实现。例如如下程序:

exit_flag = False
# 外层循环
for i in range(0, 5) :
    # 内层循环
    for j in range(0, 3 ) :
        print("i的值为: %d, j的值为: %d" % (i, j))
        if j == 1 :
            exit_flag = True
            # 跳出里层循环
            break
    # 如果exit_flag为True,跳出外层循环
    if exit_flag :
        break

上面程序在内层循环中判断 j 是否等于 i,当 j 等于 i 时,程序将 exit_flag 设为 True,并跳出内层循环;接下来程序开始执行外层循环的剩下语句,由于 exit_flag 为 True,因此也会执行外层循环的 break 语句来跳出外层循环。
运行上面程序,将看到如下运行结果:

i的值为: 0, j的值为: 0
i的值为: 0, j的值为: 1

程序从外层循环进入内层循环后,当 j 等于 i 时,程序将 exit_flag 设为 True,并跳出内层循环;接下来程序又执行外层循环的 break 语句,从而跳出外层循环。


http://www.kler.cn/a/146901.html

相关文章:

  • docker--工作目录迁移
  • java itext后端生成pdf导出
  • Java putIfAbsent() 详解
  • torch.is_storage()
  • 一体化运维监控管理平台:产品架构与功能解析
  • 如何使用正则表达式验证域名
  • [socket 弹 shell] msg_box3
  • 虹科干货 | 适用于基于FPGA的网络设备的IEEE 1588透明时钟架构
  • 线上异步任务突然不能回写100%
  • FLASK博客系列9——你想成为我的新用户吗?
  • Node.js入门指南(五)
  • vue页面表单提交时如何做校验
  • 你了解Redis 的二进制安全吗
  • JS 单线程还是多线程,如何显示异步操作
  • Linux篇:文件系统
  • autojs-练手-批量下载JK图片
  • Windows bat批处理zip打包排除bat文件自身不打包
  • 10、静态数码管显示
  • vatee万腾的科技征途:Vatee独特探索的数字化力量
  • excel单元格内换行按什么快捷键
  • 【Spring整合Junit】Spring整合Junit介绍
  • 边缘计算网关:智能制造的“智慧大脑”
  • 【高效开发工具系列】MapStruct入门使用
  • Idea常用的快捷键
  • SpringBoot封装Elasticsearch搜索引擎实现全文检索
  • vulfocus apache-cve_2021_41773 漏洞复现