程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python (for and while) loop nesting and usage

編輯:Python

文章目錄

  • Python 循環嵌套及用法


Python 循環嵌套及用法

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

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

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

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

The execution flow chart of loop nesting is shown in the following figure:

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

i = 0
while i<10:
for j in range(10):
print("i=",i," j=",j)
i=i+1

由於程序輸出結果篇幅太長,讀者可自行拷貝代碼並執行,觀察其執行結果.

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

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

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

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

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

i = 0
if i<10:
for j in range(5):
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 ...:
...

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


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved