對Python有必定了解的人應該知道,Python並非一門函數式編程語言,而是一門支持多種範式的語言,這也使得在Python中也能實現函數式編程,程序員
對於學習到Python函數式編程的朋友,在這裏推薦你們看一本名字叫《Python函數式編程》(Functional Programming in Python)從這本書中你應該能收穫很多;編程
怎麼說呢,函數是Python內建支持的一種封裝,咱們經過把大段代碼拆成函數,經過一層一層的函數調用,就把複雜的任務分解成簡單的任務,這種就稱爲面向過程的程序設計,函數就是面向過程的程序設計的基本單元。app
首先看一個例子:計算斐波那契數列(任一個數都是前兩個數之和的數字序列)編程語言
1 fibs=[0,1] 2 num =input('How many Fibonacci do you want?') 3 for i in range(num-2): 4 fibs.append(fibs[-2]+fibs[-1]) 5 print(fibs)
從上面的例子應該能明白,程序員都很懶的,重複的問題應該以一種抽象的方式去解決;函數式編程
Python中函數主要學習如下幾個方面:函數
1.如何定義學習
2.文檔化函數spa
3.參數魔法(參數傳遞、關鍵字參數、收集參數、參數收集逆過程)設計
4.做業域code
5.遞歸
6.函數式編程(lambda表達式、map函數、filter函數、reduce函數、partial、Groupby、Compose、Currying)
map(func,seq [, seq.....])
filter(func,seq)
reduce(func,seq[, initial])
sum(seq)
apply(func[, args[, kwargs]])
1.Python中函數使用def語句定義
def hello(name): return 'Hello.'+name+'!'
2.文檔化函數
def square(x): 'Calculates the square of the number x.' return x*x