python高階知識總結

2021-08-13 08:09:26 字數 2159 閱讀 4603

支援函式式程式設計,函式式程式設計的特點

@偏向於計算,而非指令,把計算視為函式而非指令

@不需要變數,無***,測試簡單

@支援高階函式,**簡潔

python函式式程式設計的特點:

@不是純函式式程式設計,可以有變數

@支援高階函式,允許函式作為變數傳入

@允許閉包,有了閉包就有返回函式

@有限度的支援匿名函式

@變數可以指向函式

@函式的引數可以接收變數

@乙個函式可以接收另乙個函式作為引數

@能接收函式作引數就是高階引數

#demo

#自定義乙個加法函式

defadd

(a, b, f):

return f(a) +f(b)

defsqrt

(a):

return pow(a,0.5) #平方根

print(add(-5, 9, abs))

print(add(25, 9, sqrt))

#map函式,對單個引數進行處理

l = list(range(10))

print(list(map(lambda x : x*x, l)))

#在python 3裡,reduce()函式已經被從全域性名字空間裡移除了,它現在被放置在fucntools模組裡用的話要 先引入:對兩個引數進行處理

from functools import reduce

print (reduce(lambda x,y: x-y, [1,2,3,4,5]))

#filter()函式:過濾函式,返回符合條件的新的列表

defis_odd

(x):

return x % 2 == 1

filter(is_odd, [1, 4, 6, 7, 9, 12, 17])

@map函式輸出:[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

@map()是 python 內建的高階函式,它接收乙個函式 f 和乙個 list,並通過把函式 f 依次作用在 list 的每個元素上,得到乙個新的 list並返回。

@reduce函式輸出:-13

@reduce()函式也是python內建的乙個高階函式。reduce()函式接收的引數和 map()類似,乙個函式 f,乙個list,但行為和 map()不同,reduce()傳入的函式 f 必須接收兩個引數,reduce()對list的每個元素反覆呼叫函式f,並返回最終結果值。

@filter函式輸出:[1, 7, 9, 17]

@filter()函式是 python 內建的另乙個有用的高階函式,filter()函式接收乙個函式 f 和乙個list,這個函式 f 的作用是對每個元素進行判斷,返回 true或 false,filter()根據判斷結果自動過濾掉不符合條件的元素,返回由符合條件元素組成的新list。

#reverse——sorted函式

defreversed_cmp

(x, y):

if x > y:

return -1

if x < y:

return

1return

0sorted([36, 5, 12, 9, 21], reversed_cmp)

@輸出:[36, 21, 12, 9, 5]

@sorted()也是乙個高階函式,它可以接收乙個比較函式來實現自定義排序,比較函式的定義是,傳入兩個待比較的元素 x, y,如果 x 應該排在 y 的前面,返回 -1,如果 x 應該排在 y 的後面,返回 1。如果 x 和 y 相等,返回 0。

#匿名函式,上面其實早就用過了,下面描述一下

print(list(map(lambda x : x*x, l)))

@高階函式可以接收函式做引數,有些時候,我們不需要顯式地定義函式,直接傳入匿名函式更方便。匿名函式有個限制,就是只能有乙個表示式,不寫return,返回值就是該表示式的結果。用完函式就會自動銷毀。

python高階 高階函式總結

將函式作為引數傳入,這樣的函式就叫做高階函式。通俗點說,就是乙個函式可以作為另乙個函式的引數和返回值 map 高階函式 接收乙個函式 f 和乙個 list,並通過把函式 f 依次作用在 list 的每個元素上,得到乙個新的 list 並返回。假設使用者輸入的英文名字不規範,沒有按照首字母大寫,後續字...

Python高階知識(2)

a.程序能實現多工,但是資源占用太多,是資源分配的單位,只有在計算密集型程式用多程序,計算密集型就是例如乙個程式要計算1 1億之間的每個數的立方和。b.執行緒是作業系統的排程的單位,占用資源很少,只有在io密集型程式下使用多執行緒,io密集型就是相當於乙個程式是tcp伺服器,大部分時間都是在等待客戶...

python 高階知識點 Python 高階知識點

filter 函式 filter 函式用於過濾序列,過濾掉不符合條件的元素,返回由符合條件元素組成的新列表。filter function,iterable 引數 function 判斷函式,返回布林值。iterable 可迭代物件。a 12a,234 dgb b list filter str.i...