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之函数式编程的主要内容,如果未能解决你的问题,请参考以下文章