3.3.3 嵌套循环

循环结构的循环体内可以包含任意Python语句,当然也可以包含其他循环结构。如果把一个循环放在另一个循环体内,就形成循环嵌套。其中最外层的循环结构称为外循环,其内包含的循环结构称为内循环。嵌套循环可以由for语句、while语句任意组成,即while语句可以嵌套for语句,for语句嵌套while语句,for语句嵌套for语句,while语句嵌套while语句,即各种类型的循环都可以作为外循环或者内循环。while、for嵌套的层数没有具体限制,其基本要求如下。

1)每个循环必须有一个唯一的变量名作为循环控制变量,外循环与内循环的控制变量不能相同。

2)内循环必须完全放在外循环体内,内外循环不得互相交叉。

除此之外,if分支结构中还可以嵌套循环结构,同样,循环结构中也可以嵌套分支结构。

例3-26】 实现一个循环嵌套程序,外循环的循环次数为2,内循环的循环次数为4,内循环的循环体执行2×4=8次。

运行程序,结果如图3-11所示。从运行结果看出,当进入嵌套循环时,循环变量i开始为1,这时即进入外循环。当进入内循环后,内循环把i当成一个普通变量,其值为1。外循环的循环变量变化一次,内循环一个周期,即j从0变化到3。

图3-11 例3-26运行结果

也就是说,假设外循环的循环次数为i次,内循环的循环次数为j次,那么内循环的循环体需要执行i×j次。

实际上,嵌套循环可以是两层嵌套,还可以是三层嵌套、四层嵌套……不论循环如何嵌套,都可以把内循环当成外循环的循环体来对待,区别只是这个循环体中包含了需要反复执行的代码。

例3-27】 显示九九乘法表。

由于内循环的range(1,i+1)函数中引用了外循环变量i,因此内循环的次数依赖于i。运行结果如图3-12所示。

图3-12 例3-27运行结果