在昨天看過了序列容器之後,我們今天要來講個跟他相輔相成的語法。
那就是所謂的,迴圈。
迴圈是什麼呢?
以程式的概念來講,迴圈就是代表要執行某件事情很多次。
那這跟序列容器又有什麼關係呢?
想像我們有一個List,裡面存了10個整數。
現在你想把每個元素都+10,你會怎麼做?
直觀一點,你可能會想說,寫個10行程式碼,每一行處理一個元素。
那假設今天有100,甚至10000個元素的時候怎麼辦?
不會真的寫10000行程式碼吧 XD?
而迴圈,就是要在這個情況下幫助我們。
身為一個程式設計師,你一定要認識迴圈界的明星,那就是所謂的for迴圈!
for loop的設計概念大概是像這樣的:
doing this loop for X times => 請執行這個迴圈X次
所以在其他程式語言中,for迴圈的基本型都是要你給定執行次數。
但在Python之中,for迴圈卻是走另外一條路線。
Python的for迴圈,是設計來從序列容器內提取物件的。
簡單來說,要使用for迴圈,要先有序列容器。
話不多說,範例來:
arr1 = [2, 4, 6, 8, 10]
str1 = 'hello python'
for i in range(10):
print(i)
print('***\n')
for i in range(len(arr1)):
print(arr1[i])
print('***\n')
for i in arr1:
print(i)
print('***\n')
for i in str1:
print(i)
print('***\n')
# for i in arr1:
# i += 1
# print(arr1)
首先,我們來看看第一個for迴圈。
我們產生了一個含有10個元素的range,內部的元素為0~9
。
接著我們使用for 變數 in 容器
的語法,來告訴Python我們要從這個容器中拿出元素。
接著迴圈要做的事情,我們要以一個程式區塊來表示。
還記得我們在語法教學part 1說的,程式區塊必須以:
以及縮排來定義。
最後我們來好好探討這個變數i
,這個變數即為我們從容器所取出的元素,因此在每次執行迴圈的過程中,這個i
的值會不一樣。
以這個range為例,他依序存放0~9
,因此第一次取出的元素為0
,第二次為1
,之後以此類推。
取出後我們將元素放入print
這個函式,將他們輸出到螢幕上。
來看看第二個迴圈。
首先我們用len
來取得arr1
的長度,並用這個長度來產生一個range。arr1
的長度為5,因此會產生一個大小為5的range,裡面放有0~4
。
如果你還記得昨天我們說過的index,一個長度為5的List,其中每個元素對應的index就剛好為0~4
。
因此for迴圈從這個range中取出的五個元素,就剛好可以用來當作arr1
的index,再搭配容器[index]
的語法,就可以拿到List中的元素囉!
第三與第四個迴圈與前面的例子都很像,因此我們在此不多做解釋。
但被註解掉的第五個迴圈就很有趣了。
請你在心中默默猜測最後的print(arr1)
到底會印出什麼,再把註解拿掉,執行程式。
你猜對了嗎?
今天我們介紹了程式中一個非常重要的觀念,那就是使用迴圈並與序列容器做搭配。
接下來,我們將會介紹如何使用迴圈做出更複雜的操作,以及如何搭配其他的型別做使用。