Python中for迴圈和while迴圈的區別


在這篇文章中,我們將瞭解 'for' 迴圈和 'while' 迴圈之間的區別。

For迴圈

一個for迴圈是一個控制流語句,它執行程式碼預定義次數的迭代。此控制流語句中使用的關鍵字是"for"。當迭代次數已知時,使用for迴圈。

for迴圈分為兩個部分:

頭部 - 此部分指定迴圈的迭代。在頭部部分,還會宣告迴圈變數,它告訴主體正在執行哪個迭代。

主體 - 主體部分包含每次迭代執行的語句。

  • 初始化、條件檢查和迭代語句寫在迴圈的開頭。

  • 僅當預先知道迭代次數時才使用它。

  • 如果在'for'迴圈中未提及條件,則迴圈將無限次迭代。

  • 初始化只執行一次,不會重複。

  • 迭代語句寫在開頭。

  • 因此,它在迴圈中所有語句都執行完畢後才執行。

語法

for(initialization; condition; iteration){
   //body of the 'for' loop
}

示例

以下程式使用for迴圈列印所有列表元素:

# input list inputList = [10, 20, 30, 40, 50] print("Input list elements:") # traversing through all elements of the list using for loop for element in inputList: # printing each element of the list print(element)

輸出

執行上述程式後,將生成以下輸出:

Input list elements:
10
20
30
40
50

While迴圈

一個迴圈,它對給定的true條件執行單個語句或一組語句。此迴圈由關鍵字"while"表示。當迭代次數未知時,使用while迴圈。語句重複執行,直到布林值為false。因為條件是在while迴圈的開頭測試的,所以它也稱為前測試迴圈。

  • 初始化和條件檢查在迴圈的開頭完成。

  • 僅當不知道迭代次數時才使用它。

  • 如果在'while'迴圈中未提及條件,則會導致編譯錯誤。

  • 如果在檢查條件時進行初始化,則每次迭代迴圈時都會發生初始化。

  • 迭代語句可以寫在迴圈內的任何位置。

語法

while ( condition) {
   statements;
   //body of the loop
}

示例

以下程式使用for迴圈列印所有列表元素:

# Initializing a dummy variable with 1 i = 1 # Iterate until the given condition is true while i < 10: # printing the current value of the above variable print(i) # incrementing the value of i value by 1 i += 1

輸出

執行上述程式後,將生成以下輸出:

1
2
3
4
5
6
7
8
9

何時使用For和While迴圈?

當我們知道迭代次數,即語句必須執行多少次時,使用for迴圈。這就是為什麼當我們初始化for迴圈時,必須定義結束點的原因。

當迭代次數未知時,使用while迴圈。當我們需要根據除重複次數以外的條件結束迴圈時,使用它。在這種情況下,不需要預先知道條件。這就是為什麼我們可以在迴圈的初始化中使用布林表示式的原因。

無條件的情況

如果在forwhile迴圈中未指定條件,則迴圈將無限次迭代。

在沒有條件的情況下,for迴圈和while迴圈之間的區別如下:

For迴圈 - 在以下示例中,迴圈將無限次執行。

示例

l = [1] for m in l: print("TutorialsPoint") l.append(m)

輸出

執行上述程式後,將生成以下輸出:

TutorialsPoint
TutorialsPoint
TutorialsPoint
TutorialsPoint
TutorialsPoint
TutorialsPoint
.
.
.
.
runs infinite times

我們從一個列表開始,並用一個隨機值初始化它。然後,使用for迴圈和in運算子,我們遍歷列表的元素。在迴圈內部,它將列印一些隨機文字,然後我們向列表中新增另一個元素,因此由於新元素的存在,for迴圈再次執行。這樣迴圈將無限次執行。

While迴圈 - 在以下示例中,迴圈將無限次執行。

示例

while True: print("TutorialsPoint")

輸出

執行上述程式後,將生成以下輸出:

TutorialsPoint
TutorialsPoint
TutorialsPoint
TutorialsPoint
TutorialsPoint
TutorialsPoint
.
.
.
.
runs infinite times

差異比較表

比較依據 For迴圈 While迴圈
關鍵字 使用for關鍵字 使用while關鍵字
用途 當迭代次數已知時使用for迴圈。 當迭代次數未知時使用while迴圈。
無條件情況 在沒有條件的情況下,迴圈無限次執行 在沒有條件的情況下返回編譯時錯誤
初始化的性質 完成一次後,無法重複 在while迴圈中,它可以在每次迭代中重複。
函式 要迭代,使用range或xrange函式。 while迴圈中沒有這樣的函式。
基於迭代的初始化 在迴圈開始時完成。 在while迴圈中,可以在迴圈體內的任何位置執行此操作。
生成器支援 Python的for迴圈可以迭代生成器。 While迴圈不能直接迭代生成器。
速度 for迴圈比while迴圈快。 與for迴圈相比,while迴圈相對較慢。

結論

在本文中,我們學習了for迴圈和while迴圈之間的區別,以及whilefor迴圈如何透過示例工作。

更新於:2023年8月26日

47K+ 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.