好用的 Function 操作-
模組化商務程式的整合者(附Python 程式碼)
Python是資料科學家進行分析的重要工具。在學習Python程式語法的過程中,當我們對基本語法都有一定的熟悉程度,為了要提升分析的效率,Function的使用就變得很重要了。
什麼是 Function?
“ Function ”,可以直接翻譯作「功能」、或者在數學上稱作「函數」,顧名思義就是一個可以達成期望結果的行為或流程。在 Function 的執行中,就像是在函數中輸入一個變數 x ,經由函式的變化,輸出成想要的結果 y。
在運用Python進行數據分析時,Function 的使用非常的重要,它可以協助我們化繁為簡,可以更有組織的管理方析的程式。
為何需要使用 Function?
Function 有助於將我們的程式碼分解為比較小的模塊,當編寫的程式越大,就更需要使用 Function 來進行組織性的管理。
撰寫程式的過程中,隨著內容越多越複雜,難免會需要使用同樣的程式碼來進行操作。為了避免重複使用相同的程式碼,我們將這些程式打包放入行李箱內,隨時都可以拿出來使用。
Function 三大特點:
- 可重複利用
- 易讀、易偵錯
- 模組化
Function 函式架構
def Function_Name(Parameter):
" Introduction "
Main Code
return
Function 的主要架構分成以下這幾項:
- def (define) 定義函式:
在建立函式的開頭打上簡短的三個字def
,宣告定義一個函數的開始。 - Function_Name 函式名稱:
函式名稱可以自由命名,但建議將名稱設定與函式中的內容相關,因為在許多程式碼的編寫之後,就會很容易忘記此函式的功能為何。好的命名可以幫助我們管理後續所有的分析規劃及進行。 - Parameter 參數:
將數值或其他變數提供至 Function 中,給予函式進行運算及使用。 - Introduction (docstring) 函式說明:
它所扮演的角色,就如同一個 “使用說明書”,作為解釋這項函式用意的功能,可自行選擇是否要加入,(若是想要將程式進行模組化,本文建議加上此說明)。假如之後忘記了某個函式的使用方式,可以用help(Function_Name)
來查看原本填入的函式說明。 - Main Code 主要程式碼:
若是想要 Function 執行的程式碼都記錄在這邊,函式內的每行程式碼前方都要加入縮排 (Indentation),才會被偵測到是屬於 同一Function 內。 - Return 回傳值:
可以將 Function 執行的結果回傳出函式之外,以供函式外的程式使用。
如何運行
parameter > main code > output value
如上所示,一個 Function 的運作流程分為三個部分:
- 輸入參數:提供所需數值資料給函式中。
- 函式轉換:將已輸入參數套入到工作程序中進行運算。
- 輸出數值:輸出運算結果。
舉例如下程式碼:
def sum_three(a,b,c):
"""
This function will sum all the numbers in the parameter.
"""
output = a + b + c
print('sum =',output)
return output
光是定義出一個函式是不夠的,那該如何使用呢?如同以下的方法,只要打上 Function_Name(Value)
,就可以簡單地將函式呼叫出來,如下程式碼。
sum_three(3,6,9)
>>> sum = 18
18
預設參數值
定義 Function 時,我們可以在參數上加入預設的值,當函式被呼叫出來時,如果沒有輸入完整的參數值,函式就會自動使用預設的值來代替,如下程式碼。
def sum_three(a=1,b=2,c=3):
"""
This function will sum all the numbers in the parameter.
"""
output = a + b + c
print('sum =',output)
return output
sum_three(3,6)
>>> sum = 12
12
另外,在輸入參數值的時候要注意參數要求的型態為何,若要求的是數字卻輸入字符串,那就會出現錯誤訊息。例如 sum_three(1,2,'a')
,那麼結果就會顯示出 TypeError
表示錯誤。
變數範圍
在 Function 內部建立的變數不會影響到 Function 外的變數。
這邊跟各位稍微說明一下變數領域的概念,簡單來說:
全域變數 (global variable) 就是建立在 Function 外的變數;
區域變數 (local variable) 就是建立在 Function 內的變數。
「全域變數」無法直接在函式內使用,但是可以使用 global
把全域變數引入函式之中。
x = 10
def example():
global x
print(x + 5)
example()
>>> 15
「區域變數」亦無法直接在函式外使用,所以需要利用 return
來將區域變數回傳出函式之外。
回傳值
def sum_three(a,b,c):
"""
This function will sum all the numbers in the parameter.
"""
output = a + b + c
print('sum =',output)
return output
由於 return
只能傳出區域變數中的 “值”,所以我們需要另外建立一個新的變數來接收它的值。
x = sum_three(3,6,9)
>>> sum = 18
x
>>> 18
實作練習
看了以上的說明,現在來看看大家的實力吧~
請根據以下的公式:
Fahrenheit = (Celsius * 9/5) + 32
建立一個可以從攝氏溫度轉成華氏溫度的轉換器。
解答請參考文末程式碼連結~(先思考一下,不要急著看答案哦!)
進階:模組程式
在學習完 Function 的基礎操作之後,接下來 就跟大家介紹 Function 在資料分析上最常被使用到的地方 — 模組化程式。
什麼是模組?
模組 (Module) 就是包含了許多 Function 在內,皆使用於類似功能的一個檔案。由於把各個函式以及主程式碼放在同一個檔案之中很容易使我們眼花撩亂,因此將這些函式另外再放入別的檔案當中,並稱作「模組程式」,而剩下的主程式碼則稱作「核心程式」。在「核心程式」中會將「模組程式」導入,並引用其中的函式。
以下我們用範例來跟大家介紹:
範例介紹
以一個計算加減乘除的程式碼為例 (example.py),將各個運算法編寫成個別的 Function 並直接做使用,如圖一。
大家可能認為這樣的程式碼並沒有出現什麼問題,但如果延伸到資料處理型的大程式中,就會發現每次在開啟程式碼的時候都要先滑過一連串的函式,才能夠進入到主程式碼當中執行,這會讓您覺得非常的不便。因此,模組程式的使用就很重要囉!
此時,我們可以將程式碼分成「模組程式」(calculator.py),將各個函式放入其中,如圖二。
再創立一個「核心程式」的檔案 (main.py),將 calculator 檔案導入 (import) ,這樣就可以使用 calculator.py 之中的函式,如圖三。
程式經過模組化後,除了在檢閱上增加其易讀性外,執行時也可以輕易地偵錯,一旦出現錯誤,就能夠直接跳到該模組檔案中去尋找並修正錯誤。
Function 及模組化程式是在專案分析時經常會用到的功能,熟練並善用它,不管是在分析案的規劃及執行,或是團隊合作的分析案都能提昇執行的效率!!
以上就是 Function 方法以及模組化程式的介紹~
希望大家對於 Function 的各項特性能有更深入的了解。
如果喜歡我的文章的話請多給我一些掌聲吧!!
作者:黃鈺淇(臺灣行銷研究特邀作者)、鍾皓軒(臺灣行銷研究有限公司創辦人)
更多實戰案例及情境好文推薦
如何透過「預測潛在交易價值」提高金融客戶體驗?
如何透過「預測潛在交易價值」提高金融客戶體驗? 情境 根據全球知名的數據行銷公司Epsilon在2018年研究,發現市場上近八成左右的客戶傾
運用盒鬚圖選擇最好的廣告 - 電商產業廣告效益分析(附Python程式碼)
運用盒鬚圖選擇最好的廣告 - 電商產業廣告效益分析(附Python程式碼) 資料科學人員需要進行資料呈現時,比起直接提供平均數、中位數、最大
透過機器學習預測股市漲跌-模型投資策略驗證(附Python程式碼)
透過機器學習預測股市漲跌-模型投資策略驗證(附Python程式碼) 程式碼來源:臺灣行銷研究Github 前情提要 在上篇文章中,我們以處理