python之內置函式 高階函式 匿名函式

2021-09-25 13:16:52 字數 2305 閱讀 6862

高階函式

遞迴實際就是乙個高階函式

# 建立乙個list列表,判斷列表裡的偶數

lst =[1

,2,3

,4,5

,6,7

,8,9

,10]def

fn(l)

:# 建立乙個新列表將我在l列表裡獲取的偶數存在新的列表

new_list=

# 通過for迴圈判斷去除偶數

for n in l:

if n%2==

0:# 將偶數新增到new_list新列表中

return new_list

'''print(fn(lst))

# 表示將l列表元素放在函式裡面去呼叫。滿足了函式自己呼叫自己的函式

# 將函式fn作為引數返回就是高階函式

'''

num =-1

# abs()返回絕對值

print

(abs

(num)

)# 1

# sorted(list)排序,返回排序後的list

print

(sorted([

1,2,

3,4,

5,6,

1,1,

3],reverse=

true))

# [6, 5, 4, 3, 3, 2, 1, 1, 1]

print

(sorted([

'1',

'2']

,reverse=

true))

# ['2', '1']

#sum(list)求取list元素的和

sum([1

,2,3

,100])

print

(sum([

1,2,

3,100]))

# 106

# round(a,b) 獲取指定位數的小數。

print

(round

(12.345678,4

))# 12.3457

-isinstance 型別判斷

- 利用該函式可以更快的判斷型別,不需要使用python直譯器,雖然python是強語言,python直譯器可以自己編譯識別,但是慢。

```python

# isinstance 型別判斷

print

(isinstance(1

,int))

# true

# eval()執行乙個表示式,或字串作為運算

print

(eval

('1+1'))

# 2

# exec()輸出python語句

exec

('print("python")'

)# python

# execute()預編譯  對任何計算機語言都有效
定義函式的過程中,沒有給定名稱的函式就叫做匿名函式

python中使用lambda表示式來建立匿名函式。

lambda 來建立匿名函式規則

●lambda只是乙個表示式,函式體比def簡單很多。

●lambda的主體是乙個表示式,而不是乙個**塊,所以不能寫太多的邏輯進去。

●lambda函式擁有自己的命名空間,且不能訪問自有引數列表之外或全域性命名空間裡的引數。

●lambda定義的函式的返回值就是表示式的返回值,不需要return語句塊

●lambda表示式的主要應用場景就是賦值給變數、作為引數傳入其它函式

lambda匿名函式的表示式規則是:lambda 引數列表: 表示式

def

fn(a,b)

:return a+b

fn(1,2

)# 普通函式

print((

lambda a,b:a+b)(10

,20))

#30

lambda就是不寫函式名的表示式,經常使用

print(fn(10,20) ) # 通過函式賦值的不好之處:python直譯器解釋**不利於效率,**維護困難。

fn1 =

(lambda a,b:a+b)

print

(fn1(10,

20))# 30

不建議使用:變數常量等屬於優先順序低的(精度要求),轉化為函式精度優先順序高的,造成精度損失。

python之內置高階函式

把函式作為引數傳入,這樣的函式稱為高階函式,函式式程式設計就是指這種高度抽象 的程式設計正規化。我們具體用兩個小案例來說明map 接收使用者輸入3個字串數字 依次將接收的三個數轉換為整形 對於序列每個元素求絕對值 nums input 請輸入 split int nums list map int,...

python之內置函式

非空即真,非0即真 記住這句話可以讓你少寫好多 l asdfgwert3r 1 sorted l 排序 字串可以直接使用sorted排序 2 all 如果list裡面都為真的情況返回為 true all 1 2,3 4 print true all 1 2,3 0 print false all 1...

python之內置函式

它將兩個 非複數 數字作為實參,並在執行整數除法時返回一對商和餘數。對於混合運算元型別,適用雙目算術運算子的規則。對於整數,結果和 a b,a b 一致,分別對應取整數和取餘數 對於浮點數,結果是 q,a b q 通常是 math.floor a b 但可能會比 1 小。如 將153拆解 a,b d...