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

86會員
425內容數
由有業界實戰經驗的演算法工程師, 手把手教你建立解題的框架, 一步步寫出高效、清晰易懂的解題答案。 著重在讓讀者啟發思考、理解演算法,熟悉常見的演算法模板。 深入淺出地介紹題目背後所使用的演算法意義,融會貫通演算法與資料結構的應用。 在幾個經典的題目融入一道題目的多種解法,或者同一招解不同的題目,擴展廣度,並加深印象。
留言0
查看全部
發表第一個留言支持創作者!
Array可以說是各種語言除了基本型別之外,最常用的資料型別與容器之一了。 Array 這種連續格子狀的資料結構,在Python要怎麼表達呢? 建立一個空的陣列 最簡單也最直接的寫法就是 array = [] # Python list [] 就對應到大家熟知的array 陣列型態的資料結
Array可以說是各種語言除了基本型別之外,最常用的資料型別與容器之一了。 Array 這種連續格子狀的資料結構,在Python要怎麼表達呢? 建立一個空的陣列 最簡單也最直接的寫法就是 array = [] # Python list [] 就對應到大家熟知的array 陣列型態的資料結
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
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
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
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介紹結構及範例說明 巢狀迴圈 巢狀迴圈是在一個迴圈內包含另一個迴圈的結構 簡單來說,就是內迴圈做完,才會在跑到外迴圈,接著在做內迴圈