嗨嗨大家~今天要跟大家介紹的是 Function(函式),這也是學習 Python 時必備的重要概念之一!
當我們真正寫程式時,常常會遇到同樣的動作需要重複很多次。像是在做 NLP 任務時,如果每次都要處理相同的事情,整段程式碼都得重新打一遍,不僅麻煩,也容易出錯,程式碼看起來也會很雜亂🤯。
因此我們會盡量避免重複的程式碼,如果有的話,一般會把它打包成「可以重複使用」的工具,而這個工具在 Python 中就稱為 function(函式)!
舉個簡單的例子好了,假設你今天有一串數字
2,5,8,12,56,100
你任務是要把兩個兩個數字加起來再乘以2,再不寫function 的情況下,你可能會這樣寫:
a = (2 + 5)* 2
print (a)
b = (8 + 12)*2
print (b)
c = (56 + 100)*2
print (c)
每多一對數字我們都要多打一行,而且你會發現,其實你都在打相同的東西😵,
但如果有我們有先定義一個function add
def add (a,b):
ans = (a+b)*2
return ans
當有一組新的值需要計算時,我們只需要這樣寫
print (add(3,4))
#回傳值
14
有沒有覺得程式碼變得比較乾淨!(有吧有吧)
所以通常我們在寫程式時,如果是需要重複使用的程式碼,會盡量把它寫成 function 的形式。
其實有點像用咖啡機煮咖啡的概念xd
平常如果不用咖啡機煮咖啡,我們要做很多步驟像是磨豆、燒水、沖泡、倒出等等的 (應該是省略了很多過程 xd 我不是咖啡達人 大概就好🙂↕️)
而咖啡機就是整個泡咖啡的流程都寫在機器裡面了,我們只要放材料、按按鈕,就能隨時做出一杯一模一樣的咖啡。
有了這一點小概念之後,我來們來說說一個function 通常會怎麼寫!
我們以最一開始有說到的這個 add
舉例
def add (a,b):
ans = (a+b)*2
return ans
我們先看到第一行,這邊的def
就是在告訴python 說,我要開始定義一個函式了,而後面的 add
就是你要幫這個函式取的名稱。再來你會看到括號裡面有a
和b
,這是在說 如果要呼叫這個函式的話,應該要給他幾個參數,以這邊來說,就是兩個,a
和 b
。
第二行開始就是在「設定流程」也就是,得到這些參數之後,這個函式會幫忙做什麼事情。
以這裡來說,可以看到就是會將a
跟b
相加起來後,再乘以2 然後存在ans
這個變數中。
那最後一行 return
是指說,在運行完這個函式後,最後應該要回傳什麼結果,
以這邊來說,就是要回傳 ans
這個變數
小小總結這段程式碼的意思就是:「定義一個名為add
的函數,需要輸入a
以及b
兩個參數,才能執行這段函式。這個函式會將a
及b
相加後乘以二,並把答案存在ans 中,最後這個函式會輸出ans 作為執行結果。」
講回剛剛煮咖啡的例子,整台咖啡機就很像是一個function, 他就是幫忙處理「泡咖啡」這件事整個流程,而裡面的材料像是咖啡豆就是整個function 裡面的參數,最後的咖啡就是執行的結果☕️
那有這些小概念後,我們來個小試身手 (建議打開你的編輯器打打看喔!)
今天想要寫一個函式,當輸入一個數值後,他會回傳輸入值的兩倍
print(double_number(2))
#回傳結果
4
你會怎麼寫呢👽?
將將 參考答案在這兒👇
def double_number(n):
ans = n * 2
return ans
這段程式碼的意思就是:「有一個double_number 的函數,他接收一個參數n
。在接收到這個n
後他會將n
乘以2 然後存在ans
這個變數中,最後函式會輸出ans
。」
特別注意在打function 時,要記得留意「縮排」,不然程式碼可能不會順利運行喔🥸
是不是很簡單~~
其實function 裡面的寫法其實沒有標準答案,每個人都有自己習慣的寫程式方式,解法也不一定只有一種,所以只要確保輸出的答案是你希望的樣子就好!
好拉~今天一樣是偏向處理資料會用到的一些實用的技巧,希望大家能吸收!
我們明天見拉😆~