查看全课大纲(第 19 / 51 节)
- 1.Python 是什么?为什么值得学?
- 2.如何为 Python 编程准备一个“全家桶”环境?
- 3.Python 有哪几种执行方法?
- 4.行与缩进到底有什么用?
- 5.注释有什么用,怎么写?
- 6.变量:如何给数据起个好名字?
- 7.运算符的优先级和常见坑点是什么?
- 8.Python 中,数字和布尔值究竟有哪几种?
- 9.输入函数 `input()` 和文件读取 `open()` 怎么用?
- 10.如何将程序的结果展示给用户或保存下来?
- 11.CSV 文件怎么读怎么写才方便?
- 12.列表是什么,如何创建和访问它?
- 13.列表的修改操作,有哪些方法?
- 14.列表切片为什么能取到部分元素?排序和查找又该怎么用?
- 15.判断语句:如何让程序根据条件做不同的事?
- 16.for 循环如何遍历序列中的元素?
- 17.while 循环什么时候才会停?
- 18.while 循环的结束条件,你写对了吗?
- 19.循环中途想提前结束,怎么办?
- 20.`break` 和 `continue` 到底有什么区别?
- 21.列表推导式如何让代码更简洁高效?
- 22.字符串怎么定义、拼接和操作?
- 23.元组:为什么定义单个元素时要加逗号?
- 24.集合(set)怎么用?如何快速去重和做集合运算?
- 25.字典是什么,为什么比列表更方便?
- 26.字典的增删改查与遍历,如何避免 KeyError?
- 27.函数里的变量,为什么有的能用有的不能用?
- 28.在函数内部修改全局变量,为什么有时不生效?
- 29.函数里能修改全局变量吗?返回值怎么用?
- 30.匿名函数:如何用 lambda 快速定义简单函数?
- 31.面向对象编程是什么,为什么需要它?
- 32.类中的方法和属性到底怎么定义和使用?
- 33.如何控制对对象内部属性和方法的访问?
- 34.异常发生时,程序会怎样继续执行?
- 35.如何组织代码:包和模块
- 36.`if __name__ == '__main__'` 到底有什么用?
- 37.如何用 IDE 的 Debug 功能排查程序错误?
- 38.Matplotlib 绘图的第一步该做什么?
- 39.Figure 是什么,如何设置图形尺寸?
- 40.如何自定义 Matplotlib 的坐标轴?
- 41.如何为图表添加图例,让不同曲线一目了然?
- 42.饼图怎么画才能直观展示数据占比?
- 43.如何用 Matplotlib 绘制散点图?
- 44.柱状图怎么画?
- 45.如何使用 Matplotlib 绘制等高线图?
- 46.如何在 Matplotlib 中绘制子图?
- 47.zip 函数如何把多个列表“打包”在一起?
- 48.如何给可迭代对象加上索引?
- 49.random 模块如何生成随机数?
- 50.math 模块怎么用?
- 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 触发后,循环体内位于它后面的语句是否还会执行。下一节会用完整示例给出这道题的结论与推演。
常见错误
| 错误写法 | 现象或报错 | 原因 | 正确写法 |
|---|---|---|---|
在循环之外单独写 break | SyntaxError: 'break' outside loop | break 只能出现在 while 或 for 的循环体内部 | 把 break 移进循环体,并放在需要触发的 if 分支里 |
把 break 当成“跳过本次循环”来用 | 循环直接结束,后面的元素都不再处理 | break 结束的是整个当前层循环;“跳过本次、继续下一轮”是 continue 的作用 | 确实要提前收尾时用 break;只想跳过某一轮,改用 continue |
小结
break会跳出它所在的那一层循环,程序继续执行循环之外的语句。break触发后,循环体内位于它后面的语句不再执行。break必须写在循环体内部,通常放在if分支中按条件触发。- “结束整个循环”和“只跳过本次循环”是两种不同需求,后者由下一节的
continue负责。
📋 行动清单
- 把骨架补成可运行的
while循环,在if条件满足时执行break,观察循环是否提前结束。 - 用一句话写下
break与“跳过本次循环”的区别,下一节学continue时拿来对照。 - 检查自己写过的循环,确认每个
break都确实位于循环体内部。
—— 小象教研组
配套资料 · 直接下载
课件、代码、数据集等配套资料全部免费,点击即可直接下载,无需分享或解锁。
- 下载第2章代码包:break及continue(含1 个 Notebook)ZIP · 1KB