iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 5
0
AI & Data

機器學習理論與實務 with Python系列 第 5

[Day - 05] - Python 基礎語法教學 Part 3

Python 基礎語法教學 Part 3

在昨天看過了序列容器之後,我們今天要來講個跟他相輔相成的語法。
那就是所謂的,迴圈。

迴圈

迴圈是什麼呢?
以程式的概念來講,迴圈就是代表要執行某件事情很多次。
那這跟序列容器又有什麼關係呢?
想像我們有一個List,裡面存了10個整數。
現在你想把每個元素都+10,你會怎麼做?
直觀一點,你可能會想說,寫個10行程式碼,每一行處理一個元素。
那假設今天有100,甚至10000個元素的時候怎麼辦?
不會真的寫10000行程式碼吧 XD?
而迴圈,就是要在這個情況下幫助我們。

for迴圈 (for loop)

身為一個程式設計師,你一定要認識迴圈界的明星,那就是所謂的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)到底會印出什麼,再把註解拿掉,執行程式。
你猜對了嗎?

小結

今天我們介紹了程式中一個非常重要的觀念,那就是使用迴圈並與序列容器做搭配。
接下來,我們將會介紹如何使用迴圈做出更複雜的操作,以及如何搭配其他的型別做使用。


上一篇
[Day - 04] - Python 基礎語法教學 Part 2
下一篇
[Day - 06] - Python 基礎語法教學 Part 4
系列文
機器學習理論與實務 with Python8

尚未有邦友留言

立即登入留言