2.嵌套循環:
概念:循環中再定義循環,稱為嵌套循環;
【注意】嵌套循環可能有多層,但是一般我們實際開發最多兩層就可以搞定了(99%的情況)
格式:
1).while中套while常用
2).while中套forin
3).forin中套while
4).forin中套forin更常用
演示forin...forin:
格式如下:
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()