def fun(): i = 0 while i < 6: #print(i) i += 1 a = fun() print(a) print(type(a)) # 《程式語言教學誌》的範例程式 # http://pydoing.blogspot.com/ # 檔名:def04.py # 功能:示範 Python 程式 # 作者:張凱慶 # 時間:西元 2010 年 12 月
執行結果如下
這裡,我們將 fun() 中呼叫 print() 的第 4 行註解化,使其不會發生作用,然後第 7 行以變數 (variable) a 取得 fun() 的回傳值
a = fun()
然後第 8 行印出 a
print(a)
結果得到 None ,就是 None 物件。第九行印出 a 的型態種類
print(type(a))
'NoneType' 就是 None 物件的型態名稱。
有回傳值的函數是在函數定義中加入 return 陳述 (return statement) ,通常是放在函數的最後面,形式如下
def function_name(): pass return something
下面的 sum() 函數,計算 1 到 100 的總和
def sum(): i = 1 sum = 0 while i <= 100: sum += i i += 1 return sum a = sum() print(a) print(type(a)) # 《程式語言教學誌》的範例程式 # http://pydoing.blogspot.com/ # 檔名:def05.py # 功能:示範 Python 程式 # 作者:張凱慶 # 時間:西元 2010 年 12 月
執行結果如下
sum 為整數型態 (integral type) ,也就是 'int' 型態,因此回傳的是整數值 (integer value) 。
函數定義中沒有限制 retrun 陳述的數量,可依需要自行設置,如
def other(): if 1: return 10 else: return "hello" a = other() print(a) print(type(a)) # 《程式語言教學誌》的範例程式 # http://pydoing.blogspot.com/ # 檔名:def06.py # 功能:示範 Python 程式 # 作者:張凱慶 # 時間:西元 2010 年 12 月
執行結果如下
函數定義中也沒有限制回傳值的數量,可在 retrun 陳述中以逗號分隔回傳值,例如
def test(): return 10, "hello" a , b = test() print(a) print(b) print(type(a)) print(type(b)) # 《程式語言教學誌》的範例程式 # http://pydoing.blogspot.com/ # 檔名:def07.py # 功能:示範 Python 程式 # 作者:張凱慶 # 時間:西元 2010 年 12 月
執行結果如下
中英文術語對照 | |
---|---|
函數 | function |
回傳值 | return value |
呼叫 | call |
物件 | object |
變數 | variable |
return 陳述 | return statement |
整數型態 | integral type |
整數值 | integer value |
參考資料
http://docs.python.org/py3k/tutorial/controlflow.html
http://docs.python.org/py3k/reference/compound_stmts.html
http://docs.python.org/py3k/tutorial/controlflow.html
http://docs.python.org/py3k/reference/compound_stmts.html
沒有留言:
張貼留言