Python2筆記(五)—— 函數

定義

定義一個函數要使用 def 語句,依次寫出函數名、括號、括號中的參數和冒號:,然後,在縮進塊中編寫函數體,函數的返回值用 return 語句返回。

# -*- coding: utf-8 -*-
def add(x, y):
    z = x + y
    return x, y, z


print add(1, 2)
print add(1, 2)[1]

**使用遞歸函數需要注意防止棧溢出。**在計算機中,函數調用是通過棧(stack)這種數據結構實現的,每當進入一個函數調用,棧就會加一層棧幀,每當函數返回,棧就會減一層棧幀。由於棧的大小不是無限的,所以,遞歸調用的次數過多,會導致棧溢出。可以試試計算 fact(10000)。

函數的默認參數的作用是簡化調用,由於函數的參數按從左到右的順序匹配,所以默認參數只能定義在必需參數的後面:

# -*- coding: utf-8 -*-
def add(x, y=10):
    z = x + y
    return x, y, z


print add(1)
print add(1, 2)

結果:
(1, 10, 11)
(1, 2, 3)

可變參數的名字前面有個 * 號,我們可以傳入0個、1個或多個參數給可變參數;
可變參數也不是很神祕,Python解釋器會把傳入的一組參數組裝成一個tuple傳遞給可變參數,因此,在函數內部,直接把變量 args 看成一個 tuple 就好了。

# -*- coding: utf-8 -*-
def add(*args):
    return args, args[0] + 3


print add(1)
print add(1, 'c')

結果:
((1,), 4)
((1, ‘c’), 4)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章