自定函式
函式是一個程式區塊,必須呼叫才能運行。
可以帶 0 個、1個或多個參數進到函式中,以便在函式中運用。
結束離開函式前,也可以帶或不帶傳回值走。
語法
def 函數名稱( [參數1, 參數2, ..., 參數n] ): #函式名稱取法跟變數名稱同
程式區塊
[return 回傳1, 回傳2, 回傳3, ..., 回傳n] #區塊中可以帶回傳值
範例:設計一個函式,帶入長方形的寬高,計算長方形的面積後並回傳。
並輸入方形的 寬和高後,呼叫此函數,取得方形面積後,列印結果。
範例:設計一個函式,輸入身高和性別,帶入身高和性別,計算標準體重後回傳。
並輸入身高、性別後,呼叫此函式,取得標準體重後列印結果。
世界衛生組織計算標準體重之方法 :
男性: (身高cm-80)×70﹪=標準體重
女性: (身高cm-70)×60﹪=標準體重
變數的有效範圍
變數可能存在函式中或函式外。他們的有效範圍是不同的。
依有效範圍來看,變數分成全域變數和區域變數:
全域變數:定義在函式外的變數,有效範圍是整個 python 檔。函式之內的程式碼,可以看到全域變數,故可以使用全域變數。
區域變數:定義在函式內的變數,有效範圍僅在所在的函式內。函式之外的程式碼,看不到函式內的區域變數,故無法使用區域變數。只有函式內的程式碼才能使用區域變數。
若函式內的程式碼需要用 a,但函式內、外各有一個相同名稱的變數 a,則會取用函式內的 a。
函式內程式碼使用變數的原則是,會先在自己的函式內找尋要用的變數,若找不到,才會往函式外找尋。若都找不到,則程式會出現錯誤。
範例:設計一個 函式,函式內、外各有一個 a, 並在函式內、外皆列印一個 a。(看列印的 a 式哪個值)
下列 PythonTutor 的 Python 程式執行的視覺畫面,當呼叫函數 scope() 時,python 內部會開闢一個小區塊來放置函數所需要的變數。如下圖,可以看到外部的全域變數 a 和函數內部的區域變數a,是不同個變數。