函數是一種抽象,是實現可重用代碼的最直接的形式。
通過編寫函數,封裝了方法,之後可以直接調用函數,節省了代碼量。
創建函數
def func():
pass
返回值
函數使用return語句返回,可以有返回值,或者無返回值。
需要多個返回值可以返回一個元組。
設計程序時,有多個if分支語句,要確保都有返回值,沒有返回值默認返回None。
參數
函數參數有實參和形參,定義函數括號後面的是形參,調用函數時傳入的是實參。
函數通常不能改變參數,如字符串和元組是無法被改變的,但是列表可以改變。
所以如果需要改變參數,可以將其變成列表傳入,如果不想改變,可以使用切片獲得列表一個副本,如y = x[:]
當函數有多個參數時,調用函數時實參的順序就很重要,可以通過關鍵字參數來無視順序。如函數定義如下:
def func(p1, p2):
print p1, p2
如果有val1 = 1.0 val2 = 2.0 函數調用可以這樣 func(p1=val1, p2=val2)
還可以提供默認值
def func(p1 = 0.0, p2 = 0.0):
print p1, p2
所以可以多種形式調用,func() func(1) func(1, 2) func(p1 = 1, p2 = 2)
如果需要用戶提供任意數量的參數,就要用到參數收集
def func1(*params):
print params
這裏將多個參數放入元組
def func2(**params):
print params
這裏可以收集關鍵字參數,放入字典
作用域
python中變量和值是放在字典中存儲的,這個字典就是一個作用域。
除了全局作用域外,每個函數調用都會創建一個新的作用域,裏面的變量是局部的。
要想顯式的聲明全局變量,使用global a = 0.0
給函數寫文檔可以通過#加註釋,或者在開頭寫入' ' 文檔字符串,以幫助理解函數的功能。
如果字典的值是一個列表,如何添加元素?用d.setdefault(k,[]).append(val)。如果字典d裏沒有鍵k,那麽返回空列表並加入字典,如果k存在,也會返回保存值的列表,使用append()添加元素
Tags: 設計程序 python return 關鍵字 字符串
文章來源: