1. 程式人生 > 其它 >Python 函式進階-lambda匿名函式和三元運算子

Python 函式進階-lambda匿名函式和三元運算子

匿名函式

什麼是匿名函式

用一句話表達只有返回值的函式就是匿名函式。

匿名函式只用來實現一些簡單的函式功能,所以追求程式碼的簡潔和高效。

使用關鍵字 lambda 定義,所以匿名函式又稱之為lambda表示式。

分類

  1. 無引數的 lambda 表示式

    # 普通函式
    def func():
    	return 'hello motherland'
    
    # 呼叫
    res = func()
    print(res)  # hello motherland
    
    
    # lambda表示式
    func = lambda: 'hello motherland'
    
    # 呼叫
    res = func()
    print(res)  # hello motherland
    
  2. 有引數的 lambda 表示式

    # 普通函式
    def func(val):
    	return val
    
    
    # lambda表示式
    func = lambda val: val
    
  3. 帶有判斷條件的 lambda 表示式

    def func(val):
    	if val == 0:
    		return 'yes'
    	return 'no'
    
    
    # lambda表示式
    func = lambda val: 'yes' if val == 0 else 'no'
    

三元運算子

三元運算子一般又稱之為三目運算子。它是軟體程式設計中的一種固定格式,是眾多程式語言中不可或缺的一種邏輯判斷演算法,邏輯概念就是一個簡單的if條件判斷語句,使用這個演算法可以呼叫資料時可以逐級篩選。

語法:條件成立表示式 ? 條件判斷式 : 條件反式

眾多語言中一般使用…… ? …… : …… 符號作為三元運算子,但是python不是這樣,python中使用…… if ……… else ……… 作為三元運算子的使用, 這也體現了python比其它的語言的優勢,更簡單的語法和更高的語句視覺化。

語法:lambda [引數] : 真值 if 條件表示式 else 假值
如果條件表示式成立,返回真值,反之返回假值

res = 'yes' if 1 == 1 else 'no'

print(res)  # yes