Python(for和while)循環嵌套及用法


Python 不僅支持 if 語句相互嵌套,while 和 for 循環結構也支持嵌套。所謂嵌套(Nest),就是一條語句里面還有另一條語句,例如 for 里面還有 for,while 里面還有 while,甚至 while 中有 for 或者 for 中有 while 也都是允許的。

當 2 個(甚至多個)循環結構相互嵌套時,位於外層的循環結構常簡稱為外層循環或外循環,位於內層的循環結構常簡稱為內層循環或內循環。

循環嵌套結構的代碼,Python 解釋器執行的流程為:

  1. 當外層循環條件為 True 時,則執行外層循環結構中的循環體;
  2. 外層循環體中包含了普通程序和內循環,當內層循環的循環條件為 True 時會執行此循環中的循環體,直到內層循環條件為 False,跳出內循環;https://www.furuihua.cn/pingtai/
  3. 如果此時外層循環的條件仍為 True,則返回第 2 步,繼續執行外層循環體,直到外層循環的循環條件為 False;
  4. 當內層循環的循環條件為 False,且外層循環的循環條件也為 False,則整個嵌套循環才算執行完畢。


循環嵌套的執行流程圖如圖 1 所示:


循環嵌套的執行流程圖
圖 1 循環嵌套的執行流程圖


下面程序演示了 while-for 嵌套結構:

  1. i = 0
  2. while i<10:
  3. for j in range(10):
  4. print("i=",i," j=",j)
  5. i=i+1
由於程序輸出結果篇幅太長,讀者可自行拷貝代碼並執行,觀察其執行結果。

可以看到,此程序中運用了嵌套循環結構,其中外循環使用的是 while 語句,而內循環使用的是 for 語句。程序執行的流程是:

  • 一開始 i=0,循環條件 i<10 成立,進入 while 外循環執行其外層循環體;
  • 從 j=0 開始,由於 j <10 成立,因此進入 for 內循環執行內層循環體,直到 j=10 不滿足循環條件,跳出 for 循環體,繼續執行 while 外循環的循環體;
  • 執行 i=i+1 語句,如果 i<10 依舊成立,則從第 2 步繼續執行。直到 i<10 不成立,則此循環嵌套結構才執行完畢。


根據上面的分析,此程序中外層循環將循環 9 次(從 i=1 到 i=9),而每次執行外層循環時,內層循環都從 j=0 循環執行到 j=9。因此,該嵌套循環結構將執行 9*10 = 90 次。

嵌套循環執行的總次數 = 外循環執行次數 * 內循環執行次數


事實上,if 語句和循環(while、for)結構之間,也可以相互嵌套,舉個例子:

  1. i = 0
  2. if i<10:
  3. for j in range(5):
  4. print("i=",i," j=",j)

程序執行結果為:

i= 0  j= 0
i= 0  j= 1
i= 0  j= 2
i= 0  j= 3
i= 0  j= 4


需要指明的是,上面程序演示的僅是 2 層嵌套結構,其實 if、while、for 之間完全支持多層( ≥3 )嵌套。例如:

if ...:
    while ...:
        for ...:
            if ...:
                ...

也就是說,只要場景需要,判斷結構和循環結構之間完全可以相互嵌套,甚至可以多層嵌套。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM