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
沒有留言:
張貼留言