好用的 Function 操作
-模組化商務程式的整合者(附Python 程式碼)


Python是資料科學家進行分析的重要工具。在學習Python程式語法的過程中,當我們對基本語法都有一定的熟悉程度,為了要提升分析的效率,Function的使用就變得很重要了。

Photo by: pexels.com

什麼是 Function?

“ Function ”,可以直接翻譯作「功能」、或者在數學上稱作「函數」,顧名思義就是一個可以達成期望結果的行為或流程。在 Function 的執行中,就像是在函數中輸入一個變數 x ,經由函式的變化,輸出成想要的結果 y
在運用Python進行數據分析時,Function 的使用非常的重要,它可以協助我們化繁為簡,可以更有組織的管理方析的程式。

為何需要使用 Function?

Function 有助於將我們的程式碼分解為比較小的模塊,當編寫的程式越大,就更需要使用 Function 來進行組織性的管理。

撰寫程式的過程中,隨著內容越多越複雜,難免會需要使用同樣的程式碼來進行操作。為了避免重複使用相同的程式碼,我們將這些程式打包放入行李箱內,隨時都可以拿出來使用。

Function 三大特點:

  • 可重複利用
  • 易讀、易偵錯
  • 模組化

Function 函式架構

def Function_Name(Parameter):
" Introduction "
Main Code
return

Function 的主要架構分成以下這幾項:

  1. def (define) 定義函式:
    在建立函式的開頭打上簡短的三個字 def,宣告定義一個函數的開始。
  2. Function_Name 函式名稱:
    函式名稱可以自由命名,但建議將名稱設定與函式中的內容相關,因為在許多程式碼的編寫之後,就會很容易忘記此函式的功能為何。好的命名可以幫助我們管理後續所有的分析規劃及進行。
  3. Parameter 參數:
    將數值或其他變數提供至 Function 中,給予函式進行運算及使用。
  4. Introduction (docstring) 函式說明:
    它所扮演的角色,就如同一個 “使用說明書”,作為解釋這項函式用意的功能,可自行選擇是否要加入,(若是想要將程式進行模組化,本文建議加上此說明)。假如之後忘記了某個函式的使用方式,可以用 help(Function_Name) 來查看原本填入的函式說明。
  5. Main Code 主要程式碼:
    若是想要 Function 執行的程式碼都記錄在這邊,函式內的每行程式碼前方都要加入縮排 (Indentation),才會被偵測到是屬於 同一Function 內。
  6. 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
建立一個可以從攝氏溫度轉成華氏溫度的轉換器。

解答請參考文末程式碼連結~(先思考一下,不要急著看答案哦!)


 

更多實戰案例及情境好文推薦

回到頂端