Python零基础入门|第6天 while条件循环
Python零基础入门|第6天 while条件循环
本篇是零基础Python自学系列第6天笔记,适合纯小白入门,内容包含实操代码、详细讲解与配套练习题。
一、昨日内容复盘(Day5 for循环全套核心)
-
for循环核心定位:已知循环次数时使用,专门用来遍历有序可迭代序列-
可遍历序列:字符串、列表、range()生成的数字区间; -
临时变量:每一轮循环自动接收序列内一个元素,变量名自定义;
-
-
range()三种标准用法,统一遵循左闭右开规则:-
range(结束值):默认从0开始,不含结束数字; -
range(起始,结束):包含起始、不包含结束; -
range(起始,结束,步长):按固定间隔生成数字,用来批量取奇数/偶数;
-
-
循环控制关键字(for/while通用)
-
break:直接彻底终止全部循环,剩余轮次不再执行; -
continue:仅跳过当前本轮循环剩余代码,直接开启下一轮循环;
-
-
for循环自动管理计数,无需手动修改变量,不会轻易出现死循环。
二、今日学习目标
-
理解
while循环定位:未知循环次数、依靠条件真假控制循环启停,和for循环互补; -
吃透
while完整语法结构、执行流程、强制缩进规则; -
掌握
while循环标准三步写法:初始化变量→设置循环条件→循环内更新变量; -
分清死循环产生原因,学会规避死循环、强行终止死循环的方法;
-
掌握
break、continue在while内的使用,重点规避continue引发的死循环; -
了解
while...else特殊语法; -
完成数字打印、累加求和、筛选数字、交互式猜数字综合实战;
-
清晰区分
for循环与while循环适用场景,能根据需求选对循环。
三、while循环基础详解
1. 单词含义与核心逻辑
while翻译为“当……的时候”,执行逻辑:
先判断while后方条件表达式:
-
条件结果为
True:执行缩进后的循环体代码; -
循环体全部执行完成后,回到开头重新判断条件;
-
条件结果变为
False:直接跳出整个while循环,执行循环下方无缩进代码。
2. 完整标准语法
# 第一步:初始化控制变量
变量名 = 初始值
# 第二步:书写while循环条件
while 条件表达式:
# 【强制缩进】循环体代码,条件为True才会重复执行
执行语句1
执行语句2
# 第三步:循环体内更新控制变量(防止死循环,必不可少)
变量名 += 1 / 变量名 -= 1
# 无缩进代码:循环结束后仅执行一次
后续代码
语法分项拆解:
-
初始化控制变量 提前定义用来控制循环启停的数字变量(如
i = 1),给一个起始数值,用来和条件做对比; -
条件表达式 可以是比较运算(
i <= 10)、逻辑运算;表达式结果只能是True/False;末尾必须带英文冒号:; -
循环体缩进 Python 依靠 4 个空格缩进区分代码块,只有缩进后的代码会重复循环;无缩进代码不属于循环,只会运
行一次;
- 更新控制变量 循环内部必须修改控制变量的值(自增
+=1/ 自减-=1),否则条件永远成立,程序卡死进入死循环。
3. 基础示例 1:while 打印 1~10(逐行拆解运行逻辑)
# 1. 初始化计数器变量
i = 1
# 2. 设置循环条件:i小于等于10时循环执行
while i <= 10:
# 循环体:打印当前数字
print("当前数字:", i)
# 3. 更新变量:i每次+1,逐步让条件变为False
i = i + 1
逐轮运行拆解:
-
初始
i=1,判断1<=10→ True,打印 1,i变为 2; -
i=2,判断2<=10→ True,打印 2,i变为 3; …… -
i=10,判断10<=10→ True,打印 10,i变为 11; -
i=11,判断11<=10→ False,循环直接结束。 输出结果:依次打印 1、2、3、4、5、6、7、8、9、10。
四、while 循环最关键:死循环成因与解决办法
1. 什么是死循环
循环条件永久等于True,程序无限重复执行,无法自动停止,控制台卡死,只能手动强制关闭。
2. 最常见两种死循环错误
错误 1:忘记在循环内更新控制变量(新手高频踩坑)
# 错误代码:缺少 i += 1
i = 1
while i <= 10:
print(i)
# 没有更新i,i永远等于1,条件永久成立
问题:i始终为 1,1<=10永远是 True,无限打印数字 1。
错误 2:永久真值while True:无退出逻辑
# 纯死循环,没有任何终止条件
while True:
print("无限循环")
3. 终止死循环的两种方案
-
手动强制停止:控制台窗口按下快捷键
Ctrl + C; -
代码内主动终止:搭配
if判断 + break,满足指定条件时退出循环。
4. 合法永久循环场景(交互式程序专用)
while True:本身不是错误,适合登录、猜数字、菜单交互等不知道用户会操作多少次的场景,只要内部写好break退出逻
辑即可正常使用。
五、break 与 continue 在 while 循环中的完整用法(带避坑提示)
1. break:直接彻底结束整个 while 循环
触发break后,循环立刻终止,后续所有循环轮次全部跳过,直接执行循环下方代码。 示例:循环打印 1~10,数字等于 6
时立刻结束循环
i = 1
while i <= 10:
if i == 6:
# 触发break,直接跳出循环
break
print(i)
i += 1
输出结果:1 2 3 4 5 代码解析:当i=6时执行break,不会打印 6,同时不再执行i +=1,循环直接结束。
2. continue:跳过当前本轮循环,直接进入下一轮
触发continue后,本轮continue下方所有代码全部跳过,直接回到while条件判断,开启下一轮循环。
重要避坑:continue 前必须更新变量,否则死循环!
错误示范(continue 引发死循环)
i = 1
while i <= 5:
if i == 3:
continue
print(i)
i += 1
问题:i=3触发continue,直接跳过下方i +=1,i永远等于 3,条件永久成立,卡死。
正确写法(变量更新写在 continue 判断上方)
i = 0
while i < 5:
# 先更新变量,再判断continue
i += 1
if i == 3:
continue
print(i)
输出结果:1 2 4 5 解析:每次循环先让 i 自增,触发 continue 也不会卡住变量,仅跳过数字 3 的打印。
六、拓展语法:while … else 结构
执行规则
只有while循环正常结束(条件变为 False,没有被break强行打断),才会执行else内代码; 如果循环被break终止,
else板块完全不会运行。
i = 1
while i <= 3:
print(i)
i += 1
else:
# 循环正常走完1、2、3后执行
print("循环全部正常结束")
输出:
1
2
3
循环全部正常结束
对比带 break 案例(else 不执行):
i = 1
while i <= 3:
if i == 2:
break
print(i)
i += 1
else:
print("循环正常结束")
仅输出数字 1,不会打印 else 内文字。
七、综合实战案例(由浅到深)
案例 1:while 实现 1~100 数字累加求和
# 存储总和的变量,初始0
total = 0
# 计数器初始化
i = 1
while i <= 100:
# 把当前i叠加进总和
total = total + i
# 计数器自增
i += 1
# 循环结束打印最终总和
print("1~100累加总和:", total)
案例 2:while 筛选 1~30 所有奇数(continue 实现)
i = 0
while i < 30:
i += 1
# 能被2整除代表偶数,跳过打印
if i % 2 == 0:
continue
print("奇数:", i)
案例 3:交互式猜数字游戏(while True + break 综合应用)
# 设定标准答案
answer = 8
# 永久循环,等待用户输入
while True:
num = int(input("请输入1~10之间数字猜答案:"))
if num > answer:
print("猜大了,重新输入!")
elif num < answer:
print("猜小了,重新输入!")
else:
print("恭喜猜对,游戏结束!")
# 猜对触发break,退出永久循环
break
八、for 循环 vs while 循环 完整对比(选择标准)
| 对比维度 | for 循环 | while 循环 |
|---|---|---|
| 适用场景 | 已知循环次数;遍历字符串 / 列表 /range 序列 | 未知循环次数;条件控制、交互菜单、永久循环 |
| 计数管理 | 自动计数,无需手动更新变量 | 必须手动初始化 + 自增变量,否则死循环 |
| 代码复杂度 | 简单,不易出错 | 灵活,但新手容易踩死循环坑 |
| 典型使用场景 | 遍历列表、批量打印固定次数数字 | 登录验证、猜数字、持续输入、不确定循环轮次 |
选择口诀
已知次数、遍历序列用for;未知次数、条件控制用while。
📖 往期历史笔记
Python 学习笔记|零基础第 1 天:Windows 系统完整安装教程 + 报错解决
Python 学习笔记| 第2天 Python Windows安装教程:VS Code 完整配置开发环境
Python零基础入门|第3天 Python变量、数据类型与输入输出
Python零基础入门| 第4天:字符串索引切片+列表完整增删改查
Python 零基础入门|第 5 天 for 循环与 range、break/continue
九、下一章预告
Python零基础入门|第7天 元组tuple、集合set、四大序列类型对比
本专栏会连续更新20天完整Python零基础教程,覆盖入门语法、数据结构、办公自动化、爬虫实战全阶段,每节课都配套课后练习题与完整源码。
欢迎关注梅雅达编程笔记,持续分享Python零基础学习内容
本文为梅雅达编程笔记原创零基础 Python 连载笔记
禁止私自搬运、二次转载,转发请标注来源。
更多推荐
所有评论(0)