4. Python筆記 - Function 函數

4. Python筆記 - Function 函數
4-1. 呼叫函數
Python呼叫函數的方法如下:
Function Name (Argument_1, Argument_2, ...)
最常見的範例, 如: print("My first Python programm!").

4-2. Build-in Function (內建函數)
Function分成內建函數及自訂函數, 內建函數像常用的 print (螢幕輸出函數), 資料型態轉換函數...等. 有哪些內建函數, 可以在 Python 的官方網站查詢的到, 下方為列表及連結.
Build-in Function: https://docs.python.org/3/library/functions.html

在結束內建函數之前, 我介紹幾個函數給大家.
(1). any() and all()
any(): 回傳布林值, 只要argument有一為真(True or 1), 即回傳True.
all(): 回傳布林值, argument全為真(True or 1), 才回傳True.

(2). chr(i): 回傳 ASCII table中 i = Dec 的字符
範例:

ASCII table: http://www.asciitable.com/

(3). 型態轉換函數
bin(): 轉成二進位
bool(): 轉成布林值
int(): 轉成整數
str(): 轉成字串
float(): 轉成浮點數
list(): 轉成list
tuple(): 轉成tuple
dict(): 轉成dict

(4). @classmethod: 把 method 轉成 class method

(5). delattr(object, name): 刪除 object 的 name 屬性.

(6). dir([object]): 回傳 object 的所有屬性及方法. 搭配 delattr 使用可以再刪除 attribuate(屬性) 後, 查看剩下的屬性及方法.

(7). getattr(object, name[, default]): 取得 object 中屬性為 name 的值.

(8). globals(): 回傳字典檔, 內容為當下的全域符號表.

(9). help([object]): 查詢 object 可用的方法.

(10). @staticmethod: 把 method 轉成 ststic method.

(11). range(start, stop[, step]): 建立一個整數序列, step為間隔值.

(12). super([type[, object-or-type]]): 呼叫父類別定義

4-3: 自定義函數
自定義函數讓程式語言可以執行更多元的工作, 並且依照我們設定的需求. 定義一個新的函數, 方法相當的簡單. 以 def 開頭定義一個新的function, 在括號內的稱為 Parameter(參數), 和Parameter 對應的是呼叫函數時的 Argument(引數).
需特別注意的是 Parameter 和 Argument 是有順序性的, 第1個 argument 對應第1個 parameter, 以此類推.
函數還有另外一個重要的功能 - return (回傳值); 函數可以有回傳值, 也可以不回傳, 端看需求. 如果有回傳值, 則運行到 return 時, 函數就會停止並回傳結果. return可以是單一值, 物件, 或是tuple. 沒有回傳值的函數, 預設回傳值為None.

在定義函數時, 有預設值的 Parameter 在前, 無預設值的 Parameter 在後; 因為如同上面所述, Argument 的傳遞是依序的, 當 Argument 遇到有預設值的 Parameter, 會把預設值蓋掉.

Python也支援keyword argument, 利用參數名稱來傳遞數值.

最後, 需要搞清楚的還有另外一個觀念, 全域變數和區域變數. 定義在函數裡的變數為區域變數, 定義在函數外的為全域變數.

執行結果:

由上例可知道, 儘管變數名稱都一樣, 但是定義的位置不同, 就是不同的東西.
試想: 如果全域變數和區域變數的值一樣, id()是否會相同? Ans: id會相同!

如果要在函數裡存取全域變數, 可使用 global 來告知 Python 變數為全域變數.
指令用法: global myGVariable

Version 1 @ 12/25/2017

張貼留言

0 留言