当前位置:首页>python>从零开始学Python(第十期)|for和while循环到底怎么选?

从零开始学Python(第十期)|for和while循环到底怎么选?

  • 2026-10-11 06:59:36
从零开始学Python(第十期)|for和while循环到底怎么选?
大家好,我是小吴!欢迎来到从零开始学Python第十期。

简单回顾前两期内容,我们分别学习了 while 循环 和 for 循环,掌握了两种循环的基础语法与完整执行流程。

while 循环条件:    循环体代码
for 循环变量 in 可迭代对象(字符串、列表、元组、range() 对象、集合、字典、文件等):    循环体代码

在 while 循环的学习中,我们重点理解了循环条件的核心作用,学会了合理设计循环条件、利用 break 语句规避死循环。同时优化了之前的温度转换案例,实现了支持多次转换、可手动退出的完整版程序。

在 for 循环的学习中,我们掌握了它的黄金搭档——range() 函数,学会了用 for 循环遍历列表、字符串,了解了独特的 for-else 语法结构,最后完成了「1~100查找所有质数」的复杂案例。

学完两种循环后,可能很多小伙伴都会产生疑惑:

同样都是循环,到底什么时候用 for 循环,什么时候用 while 循环?而且很多场景下,两种循环都能实现效果,我们优先选择哪一个呢?今天这期,我们就针对这两个问题,展开学习。

一、回顾两个循环的底层核心逻辑

for 循环:主打「已知遍历、固定范围」

手上有一组明确的内容、固定的次数,挨个取出元素处理,全部处理完毕后,循环自动结束,无需手动控制终止条件。

while 循环:主打「条件驱动、未知次数」

不清楚具体要循环多少次,只设定终止规则,只要条件成立就持续执行,条件不成立就立刻停止循环。

举个例子:

假如你排队买早餐,前面只有3个人,一人一分钟,你明确知道只需要等3分钟就能轮到自己,这就是 for 循环。次数固定、对象明确,处理完自动结束。

如果前面是超长队伍,不知道具体有多少人、要等多久,只知道没排到自己就继续等,这就是 while 循环。次数未知,完全依靠条件判断是否继续。

二、场景对照:什么情况优先选谁?

✅ 优先使用 for 循环的场景

1. 明确知道循环次数

生活例子:跑步固定跑3圈就结束,次数清晰,直接搭配 range() 使用 for 循环。

2. 遍历列表、字符串等成批数据

生活例子:一筐苹果,挨个取出检查是否有坏果。无需手动计数、手动取值,for 循环会自动遍历所有元素,简洁高效。

✅ 优先使用 while 循环的场景

1. 循环次数未知,仅确定终止条件

生活例子:玩游戏,不选择退出就可以一直游玩,无法提前确定游玩次数。

2. 持续监控/等待条件满足

生活例子:烧水的时候,我们没办法确定要精确等待多少秒。只能持续监控状态:只要水还没沸腾,就继续等;等到水烧开这个条件达成,就立刻结束等待。

3. 需要无限循环框架

用 while True 搭建永久循环外壳,内部自定义终止逻辑,适配绝大多数交互式程序。

while True:    # 业务逻辑代码    if 满足退出条件:        break

✨两种循环均可实现

部分简单需求,for 循环和 while 循环都能实现,最经典的案例:计算 1~100 的累加和。

两种写法运行结果是一样的,但 while 循环需要我们手动初始化变量、手动更新计数器,写起来相对繁琐。反观 for 循环,代码更加简短,逻辑清晰,出错的概率也更低。因此,只要可以使用 for 循环,就优先选择 for 循环。只有无法提前确定循环次数,需要等待某个条件触发时,才选用 while 循环。

三、选择循环的黄金法则

法则1:按已知信息选择

• 已知循环次数 → for 循环

• 循环次数未知、靠条件终止 → while 循环

• 遍历字符串、列表等成批数据 → for 循环

• 等待特定条件触发、人机交互 → while 循环

法则2:优先保证代码可读性

拒绝冗余代码,能用简洁写法绝不复杂化。

法则3:嵌套循环优先用 for 循环

多层循环嵌套时,for 循环逻辑更清晰,能有效降低代码混乱度,减少bug。

四、实战小案例,巩固知识点

案例1:统计一句话的字符总数

需求:输入一段文字,统计总字符数量。字符串是可迭代对象,优先使用 for 循环。

案例2:密码重复验证登录

需求:用户输入密码,错误则重新输入,正确则登录成功。无法确定输错次数,优先使用 while 循环。

这期我们重点梳理了两大循环的使用边界:

for 循环:适配已知集合、固定次数的遍历场景;

while 循环:适配条件驱动、次数未知的循环场景。

✍️小思考:平时登录,输入密码的时候,我们经常能看到提示,告诉你还剩下几次输入机会。当所有机会用完之后,程序就直接退出。大家可以动手试试:这个功能该怎么实现?

下一期我们学习Python编程中的三大基础结构:顺序结构、选择结构和循环结构。其实这个知识点应该放在前期学习,因为它是所有Python代码的底层骨架!不过先实操、后补原理,更便于大家理解😂

拜拜👋,我们下期见!

最新文章

随机文章