好用的 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
建立一個可以從攝氏溫度轉成華氏溫度的轉換器。
解答請參考文末程式碼連結~(先思考一下,不要急著看答案哦!)
更多實戰案例及情境好文推薦
零售產業如何透過XGBoost解決實體店面庫存問題?
零售產業如何透過XGBoost解決實體店面庫存問題? Photo by: Nathália Rosa 情境 許多超商門店面對「庫存」與「銷售
行銷活動利潤模型與最佳決策點分析【顧客資料蒐集與清理篇】
系列二:行銷活動利潤模型與最佳決策點分析 【顧客資料蒐集與清理篇】 在系列一(連結請點此),筆者介紹了本主題的個案情境介紹,並且遇到了五大難
視覺化財經數據,挖掘資料金礦 — 以美國投資基金公司為例
視覺化財經數據,挖掘資料金礦 - 以美國投資基金公司為例 情境 電影《華爾街之狼》中有一句話「在太陽升起之前,就投資了太陽的股票!」完美詮釋