1. 程式人生 > >Python 全棧開發:python三元表達式、遞歸、匿名函數

Python 全棧開發:python三元表達式、遞歸、匿名函數

函數的參數 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) #升級版後的函數 def
max2(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三元表達式、遞歸、匿名函數