標籤:lambda 全域 lam python學習 建立 全域變數 for 總數 操作
函數定義:
def <函數名>(<參數(0個或多個)>): 函數體 return <傳回值>
參數有非選擇性參數,和選擇性參數,選擇性參數放在參數列表的最後,可以為選擇性參數指定預設值。如下:
def fact(n,m=1): s = 1 for i in range(1,n+1): s *= i return s//m
>>> fact(10)3628800>>> fact(10,5)725760
函數定義時可以設計可變數量參數,既不確定參數總數量。
def <函數名>(<參數>,*b): 函數體 return <傳回值>
舉例如下;
def fact(n,*b): s = 1 for i in range(1,n+1): s *= i for item in b: s *= item return s
結果如下:
>>> fact(10,3)10886400>>> fact(10,3,5,8)435456000
函數的傳回值,可以返回多個傳回值,如下代碼:
def fact(n,m=1): s = 1 for i in range(1,n+1): s *= i return s//m, n, m
結果如下:
>>> fact(10,5)(725760, 10, 5)>>> a,b,c=fact(10,5)>>> print(a,b,c)725760 10 5
函數的局部變數和全域變數,如果函數內部使用的局部變數為組合資料類型且未建立,等同於全域變數。
>>> ls=["F","f"]>>> def func(a): ls.append(a) return>>> func("c")>>> print(ls)[‘F‘, ‘f‘, ‘c‘]
類似於C語言中的指標操作。如果函數內部又定義了一個同名的ls列表,那麼ls就屬於局部變數。
>>> ls = ["F", "f"]>>> def func(a): ls=[] ls.append(a) return>>> func("c")>>> print(ls)[‘F‘, ‘f‘]
lambda函數是一種匿名函數,即沒有名字的函數,返回的是函數名,lambda函數用於定義簡單的,能夠在一行內表示的函數。
<函數名> = lambda<參數>:<運算式>
>>> f = lambda x,y:x+y>>> f(10,15)25>>> f = lambda:"hello">>> print(f())hello
lambda函數主要用作一些特定函數或方法的參數。
python學習筆記(9)--函數