前面我們講過了Python中的循環語句有兩種:while循環和for循環。Python語言可以允許在一個循環體內嵌套另一個循環體。
比如:在while循環中可以嵌套for循環;也可以在for循環中嵌套while循環;當然for循環中也可以嵌套另一個for循環,下面以兩個例子來示范:
1、九九乘法表的實現:
# 外層循環 for i in range(1,10): # 內層循環 for j in range(1,i+1): print(i,"*",j,"=",i*j,"t",end="") print("")
輸出結果可以看到:
上面的例子中用到了for循環下面還有另一個for循環,實現九九乘法的矩陣。
2、索引50以內的所有質數:
# 導入math模塊 import math i=2 # 外層循環 while i<50: j=2 # 內層循環 while j<=math.sqrt(i): if i%j==0: break j+=1 if j>math.sqrt(i): print(i,"是素數") i+=1 print("Over")
這里先給大家回憶下質數的含義:一個大于1的自然數,除了1和它本身外,不能被其他自然數整除,也就是需要用到取模運算%。
這個例子中在while循環中再嵌套一個while循環,實現位置索引。此例中用到了math模塊下的math.sqrt()這個函數,用于快速識別質數(當判斷i是不是質數時,理論上需要從2開始一直判斷到i,但是實際上只需要判斷到√i)。
上面兩個例子基本上將循環的嵌套使用展現出來了,要想熟練使用嵌套循環,以下兩點需要謹記:
- 循環嵌套時,外層循環和內層循環間是包含關系,也就是內層循環必須被完全包含在外層循環中。
- 當程序中出現循環嵌套時,程序每執行一次外層循環,其內層循環必須循環所有的次數(即內層循環結束)后,才能進入到外層循環的下一次循環。