【人生苦短 Python当歌】——Python函数式编程01

Posted on 2017-07-19 23:17  星点design  阅读(307)  评论(0编辑  收藏  举报

    对Python有一定了解的人应该知道,Python并不是一门函数式编程语言,而是一门支持多种范式的语言,这也使得在Python中也能实现函数式编程,

    对于学习到Python函数式编程的朋友,在这里推荐大家看一本名字叫《Python函数式编程》(Functional Programming in Python)从这本书中你应该能收获不少;

    怎么说呢,函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就把复杂的任务分解成简单的任务,这种就称为面向过程的程序设计,函数就是面向过程的程序设计的基本单元。

  首先看一个例子:计算斐波那契数列(任一个数都是前两个数之和的数字序列)

 

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.文档化函数

3.参数魔法(参数传递、关键字参数、收集参数、参数收集逆过程)

4.作业域

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