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 留言