目錄
For 迴圈
文法
範例
輸出
While 迴圈
什麼時候應該使用 For 和 While 迴圈?
在沒有條件的情況下
差异表
结论
首頁 後端開發 Python教學 在Python中,for迴圈和while迴圈之間的差異是什麼?

在Python中,for迴圈和while迴圈之間的差異是什麼?

Sep 09, 2023 pm 03:37 PM
區別 (difference) for迴圈 (for loop) while迴圈(while迴圈)

在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 迴圈

針對給定的真條件執行單一語句或一組語句的迴圈。此循環由關鍵字“while”表示。當迭代次數未知時,使用「while」迴圈。重複該語句直到布林值為假。由於條件是在 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 Loop - 在下面的範例中,循環將運行無限次。

範例

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 循环的工作原理。

以上是在Python中,for迴圈和while迴圈之間的差異是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何解決Linux終端中查看Python版本時遇到的權限問題? 如何解決Linux終端中查看Python版本時遇到的權限問題? Apr 01, 2025 pm 05:09 PM

Linux終端中查看Python版本時遇到權限問題的解決方法當你在Linux終端中嘗試查看Python的版本時,輸入python...

在Python中如何高效地將一個DataFrame的整列複製到另一個結構不同的DataFrame中? 在Python中如何高效地將一個DataFrame的整列複製到另一個結構不同的DataFrame中? Apr 01, 2025 pm 11:15 PM

在使用Python的pandas庫時,如何在兩個結構不同的DataFrame之間進行整列複製是一個常見的問題。假設我們有兩個Dat...

如何在10小時內通過項目和問題驅動的方式教計算機小白編程基礎? 如何在10小時內通過項目和問題驅動的方式教計算機小白編程基礎? Apr 02, 2025 am 07:18 AM

如何在10小時內教計算機小白編程基礎?如果你只有10個小時來教計算機小白一些編程知識,你會選擇教些什麼�...

如何在使用 Fiddler Everywhere 進行中間人讀取時避免被瀏覽器檢測到? 如何在使用 Fiddler Everywhere 進行中間人讀取時避免被瀏覽器檢測到? Apr 02, 2025 am 07:15 AM

使用FiddlerEverywhere進行中間人讀取時如何避免被檢測到當你使用FiddlerEverywhere...

什麼是正則表達式? 什麼是正則表達式? Mar 20, 2025 pm 06:25 PM

正則表達式是在編程中進行模式匹配和文本操作的強大工具,從而提高了各種應用程序的文本處理效率。

Uvicorn是如何在沒有serve_forever()的情況下持續監聽HTTP請求的? Uvicorn是如何在沒有serve_forever()的情況下持續監聽HTTP請求的? Apr 01, 2025 pm 10:51 PM

Uvicorn是如何持續監聽HTTP請求的? Uvicorn是一個基於ASGI的輕量級Web服務器,其核心功能之一便是監聽HTTP請求並進�...

哪些流行的Python庫及其用途? 哪些流行的Python庫及其用途? Mar 21, 2025 pm 06:46 PM

本文討論了諸如Numpy,Pandas,Matplotlib,Scikit-Learn,Tensorflow,Tensorflow,Django,Blask和請求等流行的Python庫,並詳細介紹了它們在科學計算,數據分析,可視化,機器學習,網絡開發和H中的用途

Python中如何通過字符串動態創建對象並調用其方法? Python中如何通過字符串動態創建對象並調用其方法? Apr 01, 2025 pm 11:18 PM

在Python中,如何通過字符串動態創建對象並調用其方法?這是一個常見的編程需求,尤其在需要根據配置或運行...

See all articles