嵌套循环:
概念:循环中再定义循环,称为嵌套循环;
【注意】嵌套循环可能有多层,但是一般我们实际开发最多两层就可以搞定了(99%的情况)
格式:
1、while中套while常用
2、while中套for in
3、for in中套while
4、for in中套for in更常用
演示for in...for in:
格式如下:
for i in 容器对象: 语句块1 for j in 容器对象: 语句块2
执行流程:
r1 = range(1,3) r2 = range(1,3) for i in r1: print('我是外层循环...') for j in r1: print('我是内层循环...') print("i=%d,j=%d" %(i,j))
先执行外层循环,将r1中的1给到i,然后执行外层循环体,
打印完'我是外层循环...',遇到了内层循环,执行它,将r2中的1给到j,然后执行内层循环体,
打印完'我是内层循环...',再打印i=1,j=1,意味着内层循环的第一次结束了,
进行第二次,...(i=1,j=2),内层循环结束了,外层循环开始迭代,将r1中的2给到i,以此类推...
总结:
(1)外层循环执行一次,内层循环全部执行一遍。
(2)如果外层循环需要执行m次,内层循环需要执行n次,嵌套循环一共会执行m*n次。
案例一:
#演示嵌套循环的使用: r1=range(1,3) r2=range(1,3) for i in r1: print('我是外层循环...') for j in r2: print('我是内层循环...') print('i=%d,j=%d' %(i,j))
案例二:
使用嵌套循环打印各种图形:
图形一:
*****
*****
*****
*****
*****
for i in range(1,6): #外层循环控制行数 for j in range(1,6): #内层循环控制每一行打印的次数 print('*',end='') #此处的print()的作用仅仅是为了换行 print()
图形二:
*
**
***
****
*****
for i in range(1,6): for j in range(1,i+1): print('*',end='') # 此处的print()的作用仅仅是为了换行 print()