本文来自异想之旅公开发布的Python教程,原文地址:https://www.yuque.com/yxzl/python
while语句的格式:
while 条件表达式:
循环体
while会判断后面的判断表达式是否为True:
True,就执行循环体,当循环体执行完,再次回到while语句,继续判断是否为TrueTrue,跳出循环具体流程可以参考下图:

cnt = 0
while cnt <= 3:
print(cnt)
cnt += 1
输出:
0
1
2
3
单步执行(右上角为cnt变量当前的值):
(CSDN不支持超过 5MB 的动图,请前往https://www.yuque.com/yxzl/python/eivcql阅读)
通过前文的介绍,我们知道只要条件表达式结果始终为True,那么while就会一直执行。于是我们可以这样操作:
while True:
print("这是一个无限循环")
输出:
这是一个无限循环
这是一个无限循环
这是一个无限循环
这是一个无限循环
这是一个无限循环
这是一个无限循环
这是一个无限循环
这是一个无限循环
……
如果你运行了这个程序,可以用快捷键Ctrl + C终止它。
当然,在我们真正开发的过程中,这样的死循环是要尽量避免的。即便使用,也一定要注意在适当的位置加上break
cnt = 0
while cnt < 10:
cnt += 1
if cnt == 5:
break
print(cnt) # 输出:5
break语句用来终止循环语句,即哪怕循环条件没有转为False,也会停止执行循环语句。

cnt = 0
while cnt < 10:
cnt += 1
if cnt % 2 == 0:
continue
print(cnt)
# 输出:
# 1
# 3
# 5
# 7
# 9
continue语句用来告诉 Python 跳过当前循环的剩余语句,然后继续进行下一轮循环(continue语句跳出本次循环,而break跳出整个循环)。

该内容相对而言不那么新手友好,可选择性掌握。
如果您使用嵌套循环,break和continue语句将停止执行最深层的循环,并开始执行下一行代码。
输出:
START
0
END
START
0
1
END
数据量不大,可以考虑颅内模拟运行。也可以看一下这个动图。

这个功能开发中几乎不可能用到,大家了解一下即可。
还是先来看示例:
cnt = 3
while cnt:
print(cnt)
cnt -= 1
else:
print('cnt = 0')
print('=====')
cnt = 3
while cnt:
print(cnt)
cnt -= 1
if cnt == 0:
break
else:
print('cnt = 0')
3
2
1
cnt = 0
=====
3
2
1
直接给出结论:如果while语句是正常退出,那么会执行else中的语句;如果while语句是被break而退出,就不会执行else。