💬欢迎学习本节课!如果你在学习过程中有疑问,欢迎在评论区留言提问,一起交流学习!
while 属于条件循环,只要条件表达式结果为True,就会重复执行循环体内的代码;当条件变为False,循环立刻结束。
执行逻辑:先判断条件,再执行循环体。如果第一次条件就是False,循环体一次都不会执行。
适用场景:
1. 循环次数不确定,依靠条件来结束循环(用户输入、等待某个条件达成)
2. 需要计数器控制固定循环次数
语法格式:
while 条件表达式:# 循环体代码,必须缩进4个空格循环执行的代码# 一般要有更新变量的语句,避免死循环# 循环结束之后执行的代码(不缩进)
核心三要素(写while循环缺一不可)1. 变量初始化:循环开始前,给控制循环的变量设置初始值
2. 循环条件:while后面的判断条件,决定什么时候停止
3. 变量更新:循环内部修改变量,让条件有机会变成False
# 1.变量初始化i = 1# 2.循环条件while i <= 5:print(i)#3.变量更新,i自增i += 1print("循环结束")
运行输出:12345循环结束
执行流程拆解:i=1,1<=5 → True,打印1,i=2
i=2,2<=5 → True,打印2,i=3
i=3,3<=5 → True,打印3,i=4
i=4,4<=5 → True,打印4,i=5
i=5,5<=5 → True,打印5,i=6
i=6,6<=5 → False,退出循环,执行print("循环结束")
sum_result = 0i = 1while i <= 10:sum_result = sum_result + ii += 1print("1~10总和:", sum_result)
输出:1~10总和: 55当循环条件永远为True,循环不会自动停止,称为死循环。
人为错误造成死循环:忘记写变量更新语句 i +=1
# ❌错误示例,死循环,程序会一直打印1i = 1while i <=5:print(i)# i +=1 被注释掉,i永远等于1
如果运行出现死循环,控制台按 Ctrl + C强制终止程序。有意使用死循环 while True
while True条件永久为真,不会自动停止,必须配合break手动退出。适合不知道循环多少次的场景,比如用户反复输入指令,输入指定文字才退出。
while True:content = input("请输入内容,输入quit退出:")if content == "quit":break # break跳出整个while循环print("你输入的是:", content)print("程序退出")
3.2 break 跳出整个循环break一旦执行,立刻终止整个while循环,剩下循环不再执行,直接跳出循环外面继续运行代码。
i = 1while i <= 5:if i == 3:breaprint(i)i +=1print("循环结束")
输出:12循环结束
3.3 continue 跳过本次循环continue:跳过本次循环后面所有代码,直接回到while条件判断,开启下一轮循环。
⚠️重点坑点:在while中使用continue,continue之前一定要更新计数器变量,否则会卡死死循环。
i = 0while i < 5:i += 1if i ==3:continueprint(i)
输出:1245
错误示范(死循环):i = 1while i <=5:if i ==3:continue # continue直接跳回条件判断,i永远等于3print(i)i += 1 # 这句永远执行不到!
3.4 while‑else 特殊语法(Python独有)else绑定while循环,规则:
✅循环正常结束(条件变为False,没有被break打断),执行else里面代码
❌如果是break强制跳出循环,else的代码不会执行
i = 1while i <=3:print(i)i +=1else:print("循环正常走完,没有被break打断")
输出:123循环正常走完,没有被break打断
演示break打断,else不执行:i =1while i <=3:if i ==2:breakprint(i)i +=1else:print("这里不会运行")
3.5 while循环嵌套while里面再写while循环,外层循环执行一次,内层循环完整跑一遍。每一层循环都要注意缩进。
# 打印3行,每行输出1 2row = 1while row <=3:col = 1while col <=2:print(col, end=" ")col += 1print() #换行row += 1
输出:1 21 21 2
四、高频易错坑点汇总1. 忘记变量更新,缺少i +=1,直接死循环。
2. while末尾漏写英文冒号:,报语法错误。
3. 缩进混乱,循环体内代码缩进不一致,出现IndentationError。
4. continue后面忘记更新循环变量,造成死循环。
5. while‑else容易混淆:else不是if的分支,是属于while循环,break会跳过else。
6. 初始变量放错位置:嵌套循环,内层循环变量要写在外层循环内部,否则不会重置。
使用while循环打印输出1~100之间所有奇数。
编写程序:不断接收用户输入数字,当输入数字为0的时候,使用break结束循环;不是0就打印该数字。
使用while循环,找出20以内能被7整除的数字,如果找到大于15的数字就break终止循环;循环正常走完输出"查找完成"。
💬学完本课你掌握了吗?练习遇到报错、有不懂的知识点欢迎评论区留言,一起讨论!