標籤:python函數
1.函數定義與調用
函數是為了實現特定功能而封裝起來的一組語句塊,可以被使用者調用
使用函數可以降低編程難度,將大問題分解成若干小問題;實現代碼重用,函數可被多次調用
格式:
def 函數名(參數列表):
函數體
函數名(參數列表)
y=0為預設參數,不傳y值則y=0
def func(x,y=0): print x,yfunc(1)func(1,2)
>>>
1 0
1 2
>>>
2.局部變數和全域變數
局部變數是函數內部定義,僅在函數內有效
i=‘before‘def func(): i=‘after‘ print i func()print i
>>>
after
before
>>>
全域變數在函數外部定義,可以被其他程式段調用
函數內部通過global可以強制定義全域變數,當函數調用時全域變數生效
i=‘before‘def func(): global i i=‘after‘ print i func()print i
>>>
after
after
>>>
3.函數傳回值return
可以返回任意資料類型,預設為None
執行完return,函數退出
注意區分return和print
def func(x,y,z): if z==‘+‘: return x+y elif z==‘-‘: return x-y print func(5,2,‘+‘)
>>>
7
>>>
def func(x,y,z): if z==‘+‘: print x+y elif z==‘-‘: print x-y print func(5,2,‘+‘)
>>>
7
None
>>>
4.參數名賦值
def func(x,y,z=0): print x,y,z func(1,2)func(y=22,x=11,z=3)
>>>
1 2 0
11 22 3
>>>
5.字典賦值和冗餘參數
def func(name,age): print name,age a={‘name‘:‘zhzhgo‘,‘age‘:25}func(**a)
>>>
zhzhgo 25
>>>
def func(x,*args): print x,args func(1,2,3,4)
>>>
1 (2, 3, 4)
>>>
def func(x,*args,**kw): print x,args,kw func(1,2,3,4)func(1,2,3,4,y=5,z=6)
>>>
1 (2, 3, 4) {}
1 (2, 3, 4) {‘y‘: 5, ‘z‘: 6}
>>>
6.__main__函數
加上if __name__==‘__main__‘:之後被其他程式import的時候就不會被執行了
7.lambda函數(匿名函數)
lambda函數是一種快速單行定義函數的方法,使代碼更簡潔,避免了不必要的函數體定義
func(x,y):
return x*y
與上面正常函數等價的寫法
func=lambda x,y:x*y
舉例:階乘實現
reduce((lambda x,y:x*y),range(1,5))
本文出自 “今日的努力,明日的成功!” 部落格,請務必保留此出處http://zhzhgo.blog.51cto.com/10497096/1673943
python函數介紹