小白都能懂的Python嵌套循环
我开门见山的说了,经量用更简单的话讲最详细的题。这个就像基础的1+1=2掌握了后面的就能更好的学习掌握。
一、什么是嵌套循环?
在写程序的时候,会有可能遇到需要重复执行某条或某些指令的场景,例如我们需要在屏幕上输出100次“hello, world”。就要使用循环结构,循环就是程序中控制某条或某些指令重复执行的结构。有了这样的结构,就可以极大节约时间。但如果遇到更复杂的场景,比如打印九九乘法表简单的循环就不够用了,就这时候就需要 「嵌套循环」 出马 —— 顾名思义,就是在一个循环里面再套一个循环,跟俄罗斯套娃一样,外面有一个,打开里面还有一个。
二、首先是for 循环嵌套:从简单案例入手
案例一打印三行四列的星型矩阵
打印出2行3列的星型矩阵
***
***
当你使用正常的for循环(如下图)的时候
for i in range(2):
print("*")
发现实现不了图中的效果,只能达到这种效果
*
*
我们只打出来了3行星号,但是缺少了列的,这个时候就需要使用循环嵌套来实现了
for i in range(2):
for j in range(3):
print('*', end='')
print()
-
外层循环
for i in range(2):range(2)生成序列0, 1,所以外层循环会执行 2 次,对应 “2 行”。- 变量
i在这里只是用来计数,暂时用不到它的值。
-
内层循环
for j in range(3):- 外层每循环 1 次(比如准备打印第 1 行),内层就会完整循环 3 次,对应 “每行 3 个星号”。
print('*', end=''):默认print()会自动换行,加end=''可以让星号连续输出。
-
最后的
print():- 内层循环打印完 3 个星号后,执行这个空的
print(),它会打印一个换行符,让下一行星号从头开始。
案例二打印左对齐直角三角形
打印左对齐直角三角形 * ** *** **** *****这个时候就可以看到从左边数一共有5行星号,很容易就能想到外层循环要使用的代码
-
for i in range(1, 6):而这个时候内层循环就可以根据自己的想法来实现想要的功能了
# 外层循环:i 从 1 到 5,代表当前是第 i 行 for i in range(1, 6): # 内层循环:第 i 行就循环 i 次,打印 i 个星号 for j in range(i): print('*', end='') print() - 外层循环
range(1, 6):这次我们从 1 开始计数(1, 2, 3, 4, 5),这样i的值正好对应行数。 - 内层循环
range(i):当i=1时,内层循环 1 次;i=2时,内层循环 2 次如此的循环打印出想要数量的星号完美匹配。for i in range(6): for j in range(1, i + 1): print("*", end='') print()上面的代码也可以实现直角三角形的星号打印,还有其他的方法实现这里就不进行举例说明的。
案例三打印九九乘法表
- 内层循环打印完 3 个星号后,执行这个空的

这个时候就需要对其拆解,首先我们观察图的格式可以发现规律,我们先打印出这个乘法表的形式,使用星号代替打印出来,就像上面打印直角三角形那样的代码一样:
for i in range(1,10):
for j in range(1,i+1):
print("*",end='')
print()
*
**
***
****
*****
******
*******
********
*********
到了这样的一步后,就很简单的,将输出的星号换成乘法算式就可以达到想要的输出效果了。
print("*",end='')将这个代码改变一下就可以了
print(i,"*",j,"=",i*j,end=' ')
for i in range(1,10):
for j in range(1,i+1):
print(i,"*",j,"=",i*j,end=' ')
print()
1 * 1 = 1
2 * 1 = 2 2 * 2 = 4
3 * 1 = 3 3 * 2 = 6 3 * 3 = 9
4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16
5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25
6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36
7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49
8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64
9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81
for j in range(1,i+1):
print(i,"*",j,"=",i*j,end=' ')
这段代码的作用:
这里 j 会从 1 循环到 i(比如当 i=3 时,j 取 1,2,3)。j 也有两个作用:一是代表 “这一行有几个乘法式子”(第 i 行就有 i 个式子),二是作为乘法式子中的乘数。
这行代码会输出类似 3 * 2 = 6 的式子。end=' ' 是关键:默认 print() 打印完会自动换行,加了 end=' ' 后,会用空格代替换行,让同一行的式子连在一起。
三、最后总结
-
缩进错误(最常见):Python 靠 缩进 区分代码块。内层循环的代码一定要比外层循环多缩进一层(通常是 4 个空格,直接使用Tab键就可以实现)。
- 错误:内层循环没缩进,会直接报错。
- 正确:严格保持缩进层级。
-
不要嵌套太多层:虽然语法支持,但建议一般不超过 3 层,否则代码会变得像 “俄罗斯套娃”,自己都容易绕晕。
-
最重要的是要多多练习,多敲敲代码,好了拜拜。
更多推荐
所有评论(0)