python之函数式编程

Posted 华山纯爷们

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python之函数式编程相关的知识,希望对你有一定的参考价值。

通常我们把可以把函数当成变量的函数,叫做高阶函数。函数式编程指的就是高阶函数编程

例1:

求两个数的绝对值的和。

解析:绝对值函数abs,我们可以定义个函数,把abs当做其中一个变量

def f(x,y,c):
    return c(x) + c(y)
n = f (-5,6,abs)
print n

求两个数的开根后的和,也可以用同样的函数调用(求平方根使用math。sqrt函数)

import math
def f(x,y,c):
    return c(x) + c(y)
n = f(9,25,math.sqrt)
print n

例2:

也有python自带的高阶函数,如:map(它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。)

求一组数的平方

def f(x):
    return x * x
n = map(f,[2,4,6,8])
print n 

将大小写混乱的英文名,输出成首字母为大写,后面为小写。首字母为大写其它小写:s[0].upper()+s[1:].lower()

def f(s):
    return s[0].upper() + s[1:].lower()
print map(s,[lSIa,MAck,rOsE])

例3:

python自带高阶函数reduce(),reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值。

求多个数之间的想乘的结果

def f(x,y):
    return x * y
n = reduce(f,(2,3,4,5))
print n

要可以多个函数结合用,比如range函数,(求10以内的数想乘结果)

def f(x,y):
    return x * y
n = reduce(f,range(1,10))

 

 

 

 

 

 

 

以上是关于python之函数式编程的主要内容,如果未能解决你的问题,请参考以下文章

python 之函数式编程

python函数式编程之装饰器

Python基础学习代码之函数和函数式编程

python基础之函数式编程

python函数式编程之生成器

Python函数式编程,范围和变量。我哪里错了?