当外层循环条件为 True 时,则实行外层循环构造中的循环体;
外层循环体中包含了普通程序和内循环,当内层循环的循环条件为 True 时会实行此循环中的循环体,直到内层循环条件为 False,跳出内循环;
如果此时外层循环的条件仍为 True,则返回第 2 步,连续实行外层循环体,直到外层循环的循环条件为 False;

当内层循环的循环条件为 False,且外层循环的循环条件也为 False,则全体嵌套循环才算实行完毕。
循环嵌套的实行流程图如图 1 所示:
图 1 循环嵌套的实行流程图
下面程序演示了 while-for 嵌套构造:
i = 0while i<10: for j in range(10): print("i=",i," j=",j) i=i+1
由于程序输出结果篇幅太长,读者可自行拷贝代码并实行,不雅观察其实行结果。
可以看到,此程序中利用了嵌套循环构造,个中外循环利用的是 while 语句,而内循环利用的是 for 语句。程序实行的流程是:
一开始 i=0,循环条件 i<10 成立,进入 while 外循环实行其外层循环体;从 j=0 开始,由于 j <10 成立,因此进入 for 内循环实行内层循环体,直到 j=10 不知足循环条件,跳出 for 循环体,连续实行 while 外循环的循环体;实行 i=i+1 语句,如果 i<10 依旧成立,则从第 2 步连续实行。直到 i<10 不成立,则此循环嵌套构造才实行完毕。根据上面的剖析,此程序中外层循环将循环 10 次(从 i=0 到 i=9),而每次实行外层循环时,内层循环都从 j=0 循环实行到 j=9。因此,该嵌套循环构造将实行 1010 = 100 次。
嵌套循环实行的总次数 = 外循环实行次数 内循环实行次数
事实上,if 语句和循环(while、for)构造之间,也可以相互嵌套,举个例子:
i = 0if i<10: for j in range(5): print("i=",i," j=",j)
程序实行结果为:
i= 0 j= 0i= 0 j= 1i= 0 j= 2i= 0 j= 3i= 0 j= 4
须要指明的是,上面程序演示的仅是 2 层嵌套构造,实在 if、while、for 之间完备支持多层( ≥3 )嵌套。例如:
if ...: while ...: for ...: if ...: ...
也便是说,只要场景须要,判断构造和循环构造之间完备可以相互嵌套,乃至可以多层嵌套。
结尾末了多说一句,小编是一名python开拓工程师,这里有我自己整理了一套最新的python系统学习教程,包括从根本的python脚本到web开拓、爬虫、数据剖析、数据可视化、机器学习等。想要这些资料的可以关注小编,并在后台私信小编:“01”即可领取。