Python循环嵌套
引入
想一想:while循环可以将原本写多遍重复的代码改成只写一遍,从而提高了代码的复用性;那如果在一次while循环的过程中有多个重复的功能要执行,该怎么办呢?
为了更好理解这个问题,看如下代码:
"""打印行和列都为5的*号正方形"""size = 5 # 正方形的大小(行数和列数)
line = "* " * size # 创建一个星号行,星号之间有空格
count = 0 # 初始化计数器while count < size:print(line)count += 1
将上述单个循环修改为循环嵌套的形式:
size = 5 # 正方形的大小(行数和列数)# 初始化行计数器
row = 1
while row <= size:# 对于每一行,初始化列计数器col = 1while col <= size:# 打印一个星号,但不换行print("*", end=" ")# 列计数器递增col += 1# 当内层循环完成一行的星号打印后,换到下一行print()# 行计数器递增row += 1
while嵌套代码示例
while 条件1:条件1满足时做的事情1条件1满足时做的事情2条件1满足时做的事情3...while 条件2:条件2满足时做的事情1条件2满足时做的事情2条件2满足时做的事情3...
注意:
- while循环嵌套运行时的特点:每次外层循环执行1次,内层循环执行全部步骤
- while循环嵌套可以无限次的嵌套,但一般情况下不超过3层while循环嵌套
- 当外层while条件不满足时表示整个while循环嵌套结束
while嵌套实际应用
示例一:
要求:打印如下图形
*
* *
* * *
* * * *
* * * * *
参考代码:
i = 1
while i <= 5:j = 1while j <= i:print("* ", end = '')j += 1print("\n")i += 1
示例二:
要求:打印如下图形
X*Y=ZX*Y=Z X*Y=ZX*Y=Z X*Y=Z X*Y=ZX*Y=Z X*Y=Z X*Y=Z X*Y=ZX*Y=Z X*Y=Z X*Y=Z X*Y=Z X*Y=Z
参考代码:
i = 1
while i <= 5:j = 1while j <= i:print("X*Y=Z ", end = '')j += 1print("\n")i += 1
示例三:
要求:打印如下图形
1*1=Z1*2=Z 2*2=Z1*3=Z 2*3=Z 3*3=Z1*4=Z 2*4=Z 3*4=Z 4*4=Z1*5=Z 2*5=Z 3*5=Z 4*5=Z 5*5=Z
参考代码:
i = 1
while i <= 5:j = 1while j <= i:print("%d*%d=Z " % (j, i), end = '')j += 1print("\n")i += 1
示例四:
要求:打印如下图形 - 九九乘法表
1*1=11*2=2 2*2=41*3=3 2*3=6 3*3=91*4=4 2*4=8 3*4=12 4*4=161*5=5 2*5=10 3*5=15 4*5=20 5*5=251*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=361*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=491*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=641*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
参考代码:
i = 1
while i <= 9:j = 1while j <= i:print("%d*%d=%d " % (j, i, j*i), end = '')j += 1print("\n")i += 1
