Python 的 for ... loop 迴圈迭代語法

閱讀時間約 7 分鐘

在循環式的流程控制中,最常用的就是for loop 或是 while loop 語法了。

最常見的場景就是根據條件判斷式,重複執行特定的指令。

如果要在python寫出類似C/C++ for loop,可以怎麼寫呢?


透過索引去進行迭代

for var in range( start=0, stop, step=1 ):


var 代表迴圈變數,對應到虛擬碼或者程式碼中的i, j, k, ...等等

range 是代表區間的起始位置,和每次迭代的前進步伐

start 起點默認是0, step 前進步伐默認是+1

stop終點需要使用者明確指定


另外,要特別注意的是, python 的區間通常都是包含起點,不包含終點


範例,如果我們要印出0~9中的整數,可以這樣寫

for i in range(0, 10, 1):
print(i, end=", ")

對應的輸出就是

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 

如同剛剛提到的,start 默認是0, step 默認是+1,所以可以省略。

在range裡面指定終點stop即可

for i in range(10):
print(i, end=", ")

對應的輸出同樣是

0, 1, 2, 3, 4, 5, 6, 7, 8, 9,


再舉一個進階一點的例子,如果要印出0~10中的偶數,可以這樣寫

for i in range(0, 11, +2):
print(i, end=", ")

要特別注意,由於range區間不包含終點,所以終點記得寫下一個比較大的數字11

對應的輸出就是

0, 2, 4, 6, 8, 10, 


另外是一個類似的例子,如果要印出0~10中的奇數,可以這樣寫

for i in range(1, 11, +2):
print(i, end=", ")

對應的輸出就是

1, 3, 5, 7, 9, 


透過索引去拜訪序列元素

例如,透過索引去拜訪陣列元素可以這樣寫

arr = [100, 200, 300, 400, 500]

for i in range( len(arr) ):
print( arr[i], end=', ')

對應的輸出就是

100, 200, 300, 400, 500, 

透過元素去進行迭代

for var in iterable可迭代對象:


另一個比較方便的形式,就是直接迭代一個序列依序拜訪每個元素

像是string字串、list列表、tuple元祖...等等這些都是可迭代對象


如果要依序印出字串中的每個字元,可以這樣寫

s = "Hello world"

for char in s:
print(char, end=", ")

對應的輸出就是

H, e, l, l, o,  , w, o, r, l, d, 


唯一要特別注意的是,這邊的char相當於一個read only的變數,僅供輸出,
如果修改char對於原本的序列是不會產生任何作用

s = "Hello world"

for char in s:
# 轉大寫
char = char.upper()
print(char, end=", ")

print(f"\n s still unchange: {s}")

對應的輸出就是

H, E, L, L, O,  , W, O, R, L, D, 
s still unchange: Hello world


如果,要依序印出陣列中的每個元素,可以這樣寫

arr = [100, 200, 300, 400, 500]

for num in arr:
print(num, end=", ")

對應的輸出就是

100, 200, 300, 400, 500, 


同樣的道理,這邊的num相當於一個read only的變數,僅供輸出,

如果修改num對於原本的序列是不會產生任何作用

arr = [100, 200, 300, 400, 500]

for num in arr:
num = num + 50
print(num, end=", ")

print(f"\n arr still unchange: {arr}")

對應的輸出就是

150, 250, 350, 450, 550, 
arr still unchange: [100, 200, 300, 400, 500]

如果同時想取得索引index和元素element,可以嗎?

可以喔!

同時透過索引和元素去迭代

for index, elem in enumerate(iterable可迭代對象):


python提供進階的enumerate枚舉語法,可以返回索引index和元素element。

提供使用者更便捷的迭代語法。


index代表迭代的索引值,沒有特別指定的話,默認從0開始數

elem代表迭代的元素


要依序印出陣列中的每個索引元素,可以這樣寫

arr = [100, 200, 300, 400, 500]

for idx, elem in enumerate(arr):
print(f"index = {idx}, element = {elem}")

對應的輸出就是

index = 0, element = 100
index = 1, element = 200
index = 2, element = 300
index = 3, element = 400
index = 4, element = 500


比較特殊的是,enumerate允許使用者指定索引編號的起點

例如,我們想要index從一開始數,這樣比較直覺,也貼近人的習慣和觀點。


依序印出陣列中的每個索引元素索引從1開始數,可以這樣寫

arr = [100, 200, 300, 400, 500]

for idx, elem in enumerate(arr, 1):
print(f"index = {idx}, element = {elem}")


對應的輸出就是

index = 1, element = 100
index = 2, element = 200
index = 3, element = 300
index = 4, element = 400
index = 5, element = 500


到這邊已經學會基本與常用的python for ... loop 語法!

語法很簡潔也很直覺,對吧!

有空記得和array陣列操作一起複習喔,效果加倍

Python 陣列 與 List comprehension 列表推導式 | 小松鼠的演算法樂園 (vocus.cc)


Reference

[1] 4. More Control Flow Tools — Python 3.12.4 documentation

80會員
417內容數
由有業界實戰經驗的演算法工程師, 手把手教你建立解題的框架, 一步步寫出高效、清晰易懂的解題答案。 著重在讓讀者啟發思考、理解演算法,熟悉常見的演算法模板。 深入淺出地介紹題目背後所使用的演算法意義,融會貫通演算法與資料結構的應用。 在幾個經典的題目融入一道題目的多種解法,或者同一招解不同的題目,擴展廣度,並加深印象。
留言0
查看全部
發表第一個留言支持創作者!
Array可以說是各種語言除了基本型別之外,最常用的資料型別與容器之一了。 Array 這種連續格子狀的資料結構,在Python要怎麼表達呢? 建立一個空的陣列 最簡單也最直接的寫法就是 array = [] # Python list [] 就對應到大家熟知的array 陣列型態的資料結
Array可以說是各種語言除了基本型別之外,最常用的資料型別與容器之一了。 Array 這種連續格子狀的資料結構,在Python要怎麼表達呢? 建立一個空的陣列 最簡單也最直接的寫法就是 array = [] # Python list [] 就對應到大家熟知的array 陣列型態的資料結
你可能也想看
Thumbnail
1.加權指數與櫃買指數 週五的加權指數在非農就業數據開出來後,雖稍微低於預期,但指數仍向上噴出,在美股開盤後於21500形成一個爆量假突破後急轉直下,就一路收至最低。 台股方面走勢需觀察週一在斷頭潮出現後,週二或週三開始有無買單進場支撐,在沒有明確的反轉訊號形成前,小夥伴盡量不要貿然抄底,或是追空
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
在這一章中,我們介紹了PHP中的流程控制語句,包括if、else if、else、三元運算子、switch語句、for迴圈、foreach迴圈、while迴圈、do-while迴圈、循環嵌套以及控制迴圈的語句如break、continue、goto和return。
Thumbnail
此章節的目的是介紹Java程式語言中的流程控制結構,包括條件語句(if, else if, else)、三元運算子、switch語句,以及各種迴圈(for, foreach, while)。同時,也解釋了如何在迴圈中使用控制語句來改變程式的執行流程。每種主題都配有示例程式碼以幫助理解。
Thumbnail
for loop、while loop、repeat
Thumbnail
本文介紹了Python中zip與enumerate函式的使用,以及它們的語法說明和程式範例。zip函式允許同時迭代多個可迭代對象,這使得程式碼更簡潔;而enumerate函式則在迭代時,提供元素的索引,使得實用工具,尤其是當需要追蹤元素的位置時。
Thumbnail
有別於上一篇for迴圈[Python基礎]流程控制for迴圈,while迴圈則常常被說是無限迴圈,若未到達跳脫的條件,是不會停止的。 在日常生活中,我們也常常用到這個概念,例如泡奶粉,要一直攪拌到粉都溶解了為止,其中的一直跟為止就等於while迴圈概念一樣,一直做到某個條件滿足了被觸發才停止。
Thumbnail
在日常中,常有重複性相當高的事情,不斷地重複在做,重複的事做久就會慢慢變成是一個習慣,這個習慣就會讓人下意識地完成一些事情。 習慣是一種自動化的行為模式,這些行為模式在重複進行的過程中變得固定且容易自動化。 在Python程式語言中,for迴圈就類似這種概念
Thumbnail
關於多執行緒/多行程的使用方式 在Python 3.2版本之後加入了「concurrent.futures」啟動平行任務, 它可以更好的讓我們管理多執行緒/多行程的應用場景,讓我們在面對這種併發問題時可以不必害怕, 用一個非常簡單的方式就能夠處裡, 底下我們將為您展示一段程式碼: imp
Thumbnail
for,while,do while語法介紹 for loop for比較偏向固定圈數型的迴圈 語法 for(計數變數初值; 布林運算式 ; 增量運算) { : 一般指令; : }
Thumbnail
巢狀迴圈For loop介紹結構及範例說明 巢狀迴圈 巢狀迴圈是在一個迴圈內包含另一個迴圈的結構 簡單來說,就是內迴圈做完,才會在跑到外迴圈,接著在做內迴圈
Thumbnail
1.加權指數與櫃買指數 週五的加權指數在非農就業數據開出來後,雖稍微低於預期,但指數仍向上噴出,在美股開盤後於21500形成一個爆量假突破後急轉直下,就一路收至最低。 台股方面走勢需觀察週一在斷頭潮出現後,週二或週三開始有無買單進場支撐,在沒有明確的反轉訊號形成前,小夥伴盡量不要貿然抄底,或是追空
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
在這一章中,我們介紹了PHP中的流程控制語句,包括if、else if、else、三元運算子、switch語句、for迴圈、foreach迴圈、while迴圈、do-while迴圈、循環嵌套以及控制迴圈的語句如break、continue、goto和return。
Thumbnail
此章節的目的是介紹Java程式語言中的流程控制結構,包括條件語句(if, else if, else)、三元運算子、switch語句,以及各種迴圈(for, foreach, while)。同時,也解釋了如何在迴圈中使用控制語句來改變程式的執行流程。每種主題都配有示例程式碼以幫助理解。
Thumbnail
for loop、while loop、repeat
Thumbnail
本文介紹了Python中zip與enumerate函式的使用,以及它們的語法說明和程式範例。zip函式允許同時迭代多個可迭代對象,這使得程式碼更簡潔;而enumerate函式則在迭代時,提供元素的索引,使得實用工具,尤其是當需要追蹤元素的位置時。
Thumbnail
有別於上一篇for迴圈[Python基礎]流程控制for迴圈,while迴圈則常常被說是無限迴圈,若未到達跳脫的條件,是不會停止的。 在日常生活中,我們也常常用到這個概念,例如泡奶粉,要一直攪拌到粉都溶解了為止,其中的一直跟為止就等於while迴圈概念一樣,一直做到某個條件滿足了被觸發才停止。
Thumbnail
在日常中,常有重複性相當高的事情,不斷地重複在做,重複的事做久就會慢慢變成是一個習慣,這個習慣就會讓人下意識地完成一些事情。 習慣是一種自動化的行為模式,這些行為模式在重複進行的過程中變得固定且容易自動化。 在Python程式語言中,for迴圈就類似這種概念
Thumbnail
關於多執行緒/多行程的使用方式 在Python 3.2版本之後加入了「concurrent.futures」啟動平行任務, 它可以更好的讓我們管理多執行緒/多行程的應用場景,讓我們在面對這種併發問題時可以不必害怕, 用一個非常簡單的方式就能夠處裡, 底下我們將為您展示一段程式碼: imp
Thumbnail
for,while,do while語法介紹 for loop for比較偏向固定圈數型的迴圈 語法 for(計數變數初值; 布林運算式 ; 增量運算) { : 一般指令; : }
Thumbnail
巢狀迴圈For loop介紹結構及範例說明 巢狀迴圈 巢狀迴圈是在一個迴圈內包含另一個迴圈的結構 簡單來說,就是內迴圈做完,才會在跑到外迴圈,接著在做內迴圈