Python 全棧開發:python三元表達式、遞歸、匿名函數
阿新 • • 發佈:2018-04-02
函數的參數 def 開發 col foo div 規則 尾遞歸 python
三元表達式
基本的語法格式
為真時的結果 if 判定條件 else 為假時的結果
比較兩個數中的大值 並返回
#一般函數的寫法
def max2(x,y): if x > y: return x else: return y res=max2(10,11) print(res) #結果 x=12 y=11 #------------------------ # 三元表達式僅應用於: # 1、條件成立返回 一個值 # 2、條件不成立返回 一個值res=x if x > y else y
print(res) #升級版後的函數 defmax2(x,y): return x if x > y else y print(max2(10,11))
遞歸
一、什麽是遞歸
遞歸函數:函數的遞歸調用,即在函數調用的過程中,又直接或間接地調用了函數本身
# 直接調用 def foo(): print(‘from foo‘) foo() foo()
# 間接調用 def bar(): print(‘from bar‘) foo() def foo(): print(‘from foo‘) bar() foo()
二、遞歸分為兩個階段,遞推和回溯
1.遞推:遞歸函數層層深入的過程是遞推的過程
2.回溯:遞歸函數在滿足結束條件後,層層返回結果的過程。
總結:
1.遞歸一定要有一個明確的結束條件
2.每進入下次遞歸,問題的規模應該減少
3.在python中沒有尾遞歸優化
匿名函數
什麽是匿名函數 關鍵字 lambda
匿名就是沒有名字 def func(x,y,z=1): return x+y+z 匿名 lambda x,y,z=1:x+y+z #與函數有相同的作用域,但是匿名意味著引用計數為0,使用一次就釋放,除非讓其有名字 func=lambda x,y,z=1:x+y+z func(1,2,3) #讓其有名字就沒有意義
總結:
1. 匿名的目的就是要沒有名字,給匿名函數賦給一個名字是沒有意義的
2. 匿名函數的參數規則、作用域關系與有名函數是一樣的
3. 匿名函數的函數體通常應該是 一個表達式,該表達式必須要有一個返回值
Python 全棧開發:python三元表達式、遞歸、匿名函數