for-loop (for迴圈)
-思考:
使用場景? ⭢ 需要對每個元素進行相同的操作。
ex: 有一個電影演員列表,需要將其中的元素全部打印出來(重複執行)。
-結構:
for
變量名
in
可迭代對象:
(縮進)
#對變量要進行的操作...
#範例1:將剛剛電影演員的例子全部打印出來
movie_actors = ["Tom", "Eric", "Tina", "Tim", "John"]
for movie_actor in movie_actors:
print(movie_actor)
#回傳結果如下
Tom
Eric
Tina
Tim
John
上述例子可以看到,python先獲取movie_actors
列表中的第一個元素"Tom"
,將其賦值予變量movie_actor
,並透過下一行的print
指令打印出來,接著開始獲取列表中其他元素重複執行相同指令,直至列表中無其他元素可獲取。
-range()函數與for迴圈
使用range()函數與for迴圈搭配可遍歷操作一系列的數
for
變量名
in
range(開始值, 停止值, 步長):
(縮進)
#對變量要進行的操作...
#範例2:打印1~10之中的奇數
for number in range(1, 11, 2):
print(number)
#回傳結果如下
1
3
5
7
9
筆者心得: 學習for迴圈時,發現書上或網上資料都會強調for的「迭代」性質。對於像我這樣的完全初學者比較難體會。下列彙總了ChatGPT的回覆及個人淺見。
《ChatGPT》
迭代(Iteration)指的是重複執行一組指令。
通常是針對可迭代物件(Iterable Object)的元素逐一處理,或是根據某個條件重複執行程式碼區塊。迭代通常透過 for
迴圈或 while
迴圈來實現。
可疊代物件(Iterable):
是指可以逐一取出元素的物件,通常可以用 for
迴圈來遍歷。
這類物件內部實作了 __iter__()
方法,使其能夠產生疊代器(Iterator) 來逐個取出元素。
個人想法:
迭代為重複執行一組指令,為了要重複執行,其所搭配的物件需可被逐一取出使用。
如透過for迴圈執行的物件無法逐一取出時,程式將報錯TypeError
。
下列為常見不可迭代物件。
#範例3: for迴圈+不可迭代物件
num = 500000
for n in num: #錯誤:int不是可迭代物件
print(n)
#若運行此代碼則回報TypeError錯誤