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迴圈。當我們需要根據除重複次數以外的條件結束迴圈時,使用它。在這種情況下,不需要預先知道條件。這就是為什麼我們可以在迴圈的初始化中使用布林表示式的原因。
無條件的情況
如果在for和while迴圈中未指定條件,則迴圈將無限次迭代。
在沒有條件的情況下,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迴圈之間的區別,以及while和for迴圈如何透過示例工作。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP