Python 程序设计讲义(25):循环结构——嵌套循环
Python 程序设计讲义(25):循环结构——嵌套循环
目录
- Python 程序设计讲义(25):循环结构——嵌套循环
- 一、嵌套循环的执行流程
- 二、嵌套循环对应的几种情况
- 1、内循环和外循环互不影响
- 2、外循环迭代影响内循环的条件
- 3、外循环迭代影响内循环的循环体
嵌套循环是指在一个循环体中嵌套另一个循环。while 循环中可以嵌入另一个 while 循环或 for 循环。反之,也可以在 for 循环中嵌入另一个 for 循环或 while 循环。
在嵌套循环中,最外层的循环称为外循环,嵌入的循环称为内循环。
一、嵌套循环的执行流程
嵌套循环的执行流程如下图所示:
嵌套循环的执行流程分为以下几步:
步骤1:执行外循环,判断外循环的条件,如果为真,则执行外循环对应的语句块。如果条件不满足,则跳出所有循环。
步骤2:执行完外循环对应的语句块后,执行内循环。
步骤3:判断内循环的条件,如果为真,执行内循环对应的语句块。当内循环条件不满足时,结束内循环。继续执行外循环。
重复上述流程,直到外循环条件不满足时,跳出外循环,整个嵌套循环结束。
二、嵌套循环对应的几种情况
1、内循环和外循环互不影响
在一个循环体中嵌入另一个循环,但循环之间互不影响。
例如:
for i in range(1,10):for j in range(1,11):print("{}*{}={:2} ".format(j,i,i*j),end="")print()程序的运行结果为:
1*1= 1 2*1= 2 3*1= 3 4*1= 4 5*1= 5 6*1= 6 7*1= 7 8*1= 8 9*1= 9 10*1=10
1*2= 2 2*2= 4 3*2= 6 4*2= 8 5*2=10 6*2=12 7*2=14 8*2=16 9*2=18 10*2=20
1*3= 3 2*3= 6 3*3= 9 4*3=12 5*3=15 6*3=18 7*3=21 8*3=24 9*3=27 10*3=30
1*4= 4 2*4= 8 3*4=12 4*4=16 5*4=20 6*4=24 7*4=28 8*4=32 9*4=36 10*4=40
1*5= 5 2*5=10 3*5=15 4*5=20 5*5=25 6*5=30 7*5=35 8*5=40 9*5=45 10*5=50
1*6= 6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 7*6=42 8*6=48 9*6=54 10*6=60
1*7= 7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 8*7=56 9*7=63 10*7=70
1*8= 8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 9*8=72 10*8=80
1*9= 9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 10*9=90
2、外循环迭代影响内循环的条件
由于外循环迭代的改变,会导致内循环的条件发生改变。
例如:
for i in range(1,10):for j in range(1,i+1):print("{}*{}={:2} ".format(j,i,i*j),end="")print() 程序的运行结果为:
1*1= 1
1*2= 2 2*2= 4
1*3= 3 2*3= 6 3*3= 9
1*4= 4 2*4= 8 3*4=12 4*4=16
1*5= 5 2*5=10 3*5=15 4*5=20 5*5=25
1*6= 6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7= 7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8= 8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9= 9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
3、外循环迭代影响内循环的循环体
正常情况下,执行内循环时,会循环执行循环体,直到循环条件不满足,正常退出内循环。由于外循环迭代的改变,会导致循环体不会被完全执行下去,而在满足某种条件的情况下退出了内循环的执行。
例如:
for i in range(1,11):f=1for j in range(1,i+1):if i%3==0:breakf*=jif i%3!=0:print("{}!={}".format(i,f))程序的运行结果为:
1!=1
2!=2
4!=24
5!=120
7!=5040
8!=40320
10!=3628800