1、for循环嵌套的特点:
外层每循环一次,外层就会循环所有次
我们来写一个代码直观看一看内层循环次数:
count = 0 # 定义一个变量存储内层循环次数
for i in range(10): # 外层循环10次
for j in range(10): # 外层循环1次,内层循环10次,总共循环100次
count += 1
print(f'count = {count}')
结果:
2、实例1:打印一个五行五列的*正方形
for i in range(0, 5, 1): # 外层控制行
for j in range(0, 5, 1): # 内层控制列
print('*', end='\t')
print() # 输出一列空白
结果:
注意:
如果没有最后的print(),打印出来的*会全部都在一行,因为每一次循环结束之后没有换行操作。输出print()的意思是每一次循环结束之后会输出换行,但输出的内容是空白。
3、实例2:输出直角三角形
for i in range(0, 5, 1):
for j in range(0, i + 1, 1): # 当外层第一次循环时,内层i +1=1,内层从0开始循环,会循环一次
print('*', end='\t')
print()
结果:
注意:
在输出直角三角形时要注意内层循环的条件,第一次外层循环从0开始,如果内层循环的stop写的是i,那么此时i=0,又因为range的stop是不包含的,所以外层从0开始循环时,内层一次都不会循环。所以要给内层的i加1,保证内层在第一次循环时一循环一次。
3、实例3:输出反向直角三角形
实例2中,我们要输出正向的直角三角形,我们是要让每一行的*个数依次递增。反过来,我们输出反向直角三角形,就要让每一行的*个数一次递减
for i in range(0, 5, 1):
for j in range(0, 5 - i, 1): #外层从0开始,内层从4开始
print('*', end='\t')
print()
结果:
4、实例4:输出九九乘法表
for i in range(1, 10, 1):
for j in range(1, i + 1, 1):
print(f'{i}*{j}={i*j}', end='\t')
print()
结果:
说明:
在九九乘法表中外层循环和内存循环都不可以从0开始,因为九九乘法表中是从1开始的。