建立函數-defpython
函數是能夠調用的(能夠包含參數),它封裝了邏輯處理的具體細節。app
例如,根據用戶輸入建立一個斐波拉契數列(任意數字都是前兩個數字的和)函數
def fib(num): fib=[0,1] for i in range(num): fib.append(fib[-2]+fib[-1]) return fib tem=input('input the number:') res=fib(int(tem)) print res
在調用函數傳遞參數的時候,要注意參數是值傳遞仍是引用傳遞,當參數以值傳遞傳入函數的時候,函數內部對傳入值的變動不會影響函數外的值;當參數以引用形式傳入函數的時候,函數內部對該引用的數據變動會影響函數外的引用數據spa
關鍵字參數
code
在定義函數的時候能夠指定參數的默認值,那麼在調用函數時就不須要傳遞參數了
input
def hell(greet='hello', name='world!'): print greet+", "+name hell(name='lisi') #參數混合傳入的時候,默認參數必須寫在後面 hell('HELLO',name='lisi')
定義可變參數函數(方法)it
有時候函數(方法)的輸入參數數量是可變的,便可變參數,經過參數列表的‘*’號標記可將參數轉爲元組,經過‘**’號標記可將參數轉爲字典class
#輸入可變參數定義在後面params元組中------將元素轉爲元組 def params1(title,*params): print title print params #位置參數傳入 params1('names','lisi','wangwu','zhaoliu') #關鍵字參數傳入,會被轉成字典params--------將元素轉爲字典 def params2(names,**params): print names print params params2(names='lisi',x=1,y=2,z=3)
計算N的階乘引用
#計算N的階乘 def cal(n): if n==1: return 1 return n*cal(n-1) print cal(1)
計算一個數的冪方法
#計算一個數的冪 def pow(x,n): if n==1: return x return x*pow(x,n-1) print pow(2, 4)