查看全课大纲(第 19 / 51 节)
  1. 1.Python 是什么?为什么值得学?
  2. 2.如何为 Python 编程准备一个“全家桶”环境?
  3. 3.Python 有哪几种执行方法?
  4. 4.行与缩进到底有什么用?
  5. 5.注释有什么用,怎么写?
  6. 6.变量:如何给数据起个好名字?
  7. 7.运算符的优先级和常见坑点是什么?
  8. 8.Python 中,数字和布尔值究竟有哪几种?
  9. 9.输入函数 `input()` 和文件读取 `open()` 怎么用?
  10. 10.如何将程序的结果展示给用户或保存下来?
  11. 11.CSV 文件怎么读怎么写才方便?
  12. 12.列表是什么,如何创建和访问它?
  13. 13.列表的修改操作,有哪些方法?
  14. 14.列表切片为什么能取到部分元素?排序和查找又该怎么用?
  15. 15.判断语句:如何让程序根据条件做不同的事?
  16. 16.for 循环如何遍历序列中的元素?
  17. 17.while 循环什么时候才会停?
  18. 18.while 循环的结束条件,你写对了吗?
  19. 19.循环中途想提前结束,怎么办?
  20. 20.`break` 和 `continue` 到底有什么区别?
  21. 21.列表推导式如何让代码更简洁高效?
  22. 22.字符串怎么定义、拼接和操作?
  23. 23.元组:为什么定义单个元素时要加逗号?
  24. 24.集合(set)怎么用?如何快速去重和做集合运算?
  25. 25.字典是什么,为什么比列表更方便?
  26. 26.字典的增删改查与遍历,如何避免 KeyError?
  27. 27.函数里的变量,为什么有的能用有的不能用?
  28. 28.在函数内部修改全局变量,为什么有时不生效?
  29. 29.函数里能修改全局变量吗?返回值怎么用?
  30. 30.匿名函数:如何用 lambda 快速定义简单函数?
  31. 31.面向对象编程是什么,为什么需要它?
  32. 32.类中的方法和属性到底怎么定义和使用?
  33. 33.如何控制对对象内部属性和方法的访问?
  34. 34.异常发生时,程序会怎样继续执行?
  35. 35.如何组织代码:包和模块
  36. 36.`if __name__ == '__main__'` 到底有什么用?
  37. 37.如何用 IDE 的 Debug 功能排查程序错误?
  38. 38.Matplotlib 绘图的第一步该做什么?
  39. 39.Figure 是什么,如何设置图形尺寸?
  40. 40.如何自定义 Matplotlib 的坐标轴?
  41. 41.如何为图表添加图例,让不同曲线一目了然?
  42. 42.饼图怎么画才能直观展示数据占比?
  43. 43.如何用 Matplotlib 绘制散点图?
  44. 44.柱状图怎么画?
  45. 45.如何使用 Matplotlib 绘制等高线图?
  46. 46.如何在 Matplotlib 中绘制子图?
  47. 47.zip 函数如何把多个列表“打包”在一起?
  48. 48.如何给可迭代对象加上索引?
  49. 49.random 模块如何生成随机数?
  50. 50.math 模块怎么用?
  51. 51.Counter 如何快速统计元素出现次数?

循环中途想提前结束,怎么办?

约 1 分钟

小象实战讲义 · Python 编程从入门到实践

前面的循环都是“要么全部跑完,要么一次不跑”。但实际编程中,我们常常需要在循环跑到一半时提前收手:比如已经找到了想要的结果,后面的元素就不必再检查了。这时就要用到 break。本节先认识 break 的定义、写法和作用范围;continue 与完整示例放到下一节。

💡 核心导读

  • break 的作用:跳出它当前所在的那一层循环,转去执行循环后面的语句。
  • 触发方式:通常写在 if 分支里,条件满足时才执行。
  • 触发之后:break 后面、仍属于本次循环的语句不再执行。
  • 书写位置:break 必须写在循环体内部。

break 是什么

在循环体中执行到 break,当前这一层循环就会整体结束,程序继续执行循环之外的语句。用 while 的骨架表示就是:

while 条件:
    代码1
    if 特殊条件:
        break      # 结束当前这一层循环
    代码2          # 触发 break 后不再执行
代码3              # 写在循环之外的代码

对照骨架可以看出三个位置:

  • 代码1 在 break 之前,正常执行。
  • 代码2 在 break 之后,仍在循环体内。
  • 代码3 写在循环之外,不属于循环体。

break 被触发时,结束的是整个当前层循环,而不是只跳过某一次。也就是说,它不是“这一轮先不做了、下一轮继续”,而是“这一层循环到此为止”。

break 的书写位置

break 只能出现在 while 或 for 的循环体内部,不能单独写在循环之外;写在循环之外会直接报 SyntaxError: 'break' outside loop。

放在循环体内时,break 通常不会无条件执行,而是包在 if 分支里,等某个特殊条件满足时才触发。这样循环平时照常跑,只有遇到需要提前收尾的情况才退出。

📝 动手练一练

看上面的骨架:当 break 被触发后,代码一、代码二、代码三中,哪一块会被执行?

👉 点击查看参考答案

判断依据:先分清三块代码各自在循环体内还是循环之外,再看 break 触发后,循环体内位于它后面的语句是否还会执行。下一节会用完整示例给出这道题的结论与推演。

常见错误

错误写法现象或报错原因正确写法
在循环之外单独写 breakSyntaxError: 'break' outside loopbreak 只能出现在 while 或 for 的循环体内部把 break 移进循环体,并放在需要触发的 if 分支里
把 break 当成“跳过本次循环”来用循环直接结束,后面的元素都不再处理break 结束的是整个当前层循环;“跳过本次、继续下一轮”是 continue 的作用确实要提前收尾时用 break;只想跳过某一轮,改用 continue

小结

  1. break 会跳出它所在的那一层循环,程序继续执行循环之外的语句。
  2. break 触发后,循环体内位于它后面的语句不再执行。
  3. break 必须写在循环体内部,通常放在 if 分支中按条件触发。
  4. “结束整个循环”和“只跳过本次循环”是两种不同需求,后者由下一节的 continue 负责。

📋 行动清单

  • 把骨架补成可运行的 while 循环,在 if 条件满足时执行 break,观察循环是否提前结束。
  • 用一句话写下 break 与“跳过本次循环”的区别,下一节学 continue 时拿来对照。
  • 检查自己写过的循环,确认每个 break 都确实位于循环体内部。

—— 小象教研组

配套资料 · 直接下载

课件、代码、数据集等配套资料全部免费,点击即可直接下载,无需分享或解锁。

  • 第2章代码包:break及continue(含1 个 Notebook)
    ZIP · 1KB
    下载