循环嵌套
循环之间可以互相嵌套,进而实现更为复杂的逻辑。循环嵌套按不同的循环语句可以划分为while循环嵌套和for循环嵌套,关于这两种循环嵌套的介绍如下。
1.while循环嵌套
while循环嵌套是指while语句中嵌套while或for语句。以while语句中嵌套while语句为例,while循环嵌套的语法格式如下:
while 条件表达式1: # 外层循环
代码块1
......
while 条件表达式2: # 内层循环
代码块2
......
执行while循环嵌套时,若外层循环的循环条件1的值为True,则执行代码段1,并对内层循环的循环条件2进行判断:值为True则执行代码段2,值为False则结束内层循环。内层循环执行完毕后继续判断外层循环的循环条件1,如此往复,直至循环条件1的值为False时结束外层循环。
下面使用while循环嵌套打印一个由“*”构成的直角三角形,示例代码如下:
i = 1
while i <= 5:
j = 1
while j <= i:
print("* ", end=' ')
j += 1
print(end="\n")
i += 1
以上示例的变量i代表图形的行数,变量j代表每行“”的数量。需要注意的是,以上程序打印的星号只需要换行一次,因此代码在内层循环中修改了print()函数的结束符(通过代码print(" ", end=' ')将end参数默认的结束符'\n'替换为空格符)。
运行代码,结果如下所示:
*
**
***
****
****
2.for循环嵌套
for循环嵌套是指for语句中嵌套了while或for语句。以for语句中嵌套for语句为例,for循环嵌套的语法格式如下:
for 临时变量 in 可迭代对象: # 外层循环
代码块1
for 临时变量 in 可迭代对象: # 内层循环
代码块2
执行for循环嵌套时,程序首先会访问外层循环中目标对象的首个元素、执行代码段1、访问内层循环目标对象的首个元素、执行代码段2,然后访问内层循环中的下一个元素、执行代码段2……如此往复,直至访问完内层循环的目标对象后结束内层循环,转而继续访问外层循环中的下一个元素,访问完外层循环的目标对象后结束外层循环。因此,外层循环每执行一次,都会执行一轮内层循环。
下面使用for循环嵌套打印一个由“*”构成的直角三角形,示例代码如下:
for i in range(1, 6):
for j in range(i):
print("*", end=' ')
print()
运行代码,结果如下所示:
*
* *
* * *
* * * *
* * * * *