您的位置:首页 > 编程语言 > Python开发

python的嵌套函数,递归,匿名函数,函数式编程,高阶函数,内置函数

2018-03-06 11:55 513 查看
一、嵌套函数:说白了就是函数内部套了另外一个函数,既然函数套函数,那就有内部函数和外部函数之分
(1)注意,内部函数不能被外部直接使用
(2)在外部函数中不能使用内部函数的参数,特别是在外部返回函数时,不能附带内部函数的参数
举例:def outer(x):
def inner(y):
return x*y
return inner
print outer(1)(2)
#可以返回inner,但是不能返回inner()
二、递归:在一个函数内部调用自身,这个函数就是递归函数,怎么调用呢,就是返回函数本身
例如:def age(n):
if n == 1:
return 18
return age(n-1)+2

print(age(5))
# age(5)=age(4)+2 第一次进入
# age(4)=age(3)+2 第二次进入
# age(3)=age(2)+2 第三次进入
# age(2)=age(1)+2 第四次进入
# age(1)=18 第五次进入,但是要加前面几次的2,也就是18+6=26
#结果就是26
注意:递归必须有一个明确的结束条件

三、匿名函数:就是没有写函数名称的函数,可以把函数赋值给一个变量
例如:
# 匿名函数
def cal(num):
return num**num
print cal(3)
# 转换成匿名函数,没有def cal()这个函数名,用lambda代替并赋值给变量
calc=lambda n :n**n
print calc(2)
# 另一个匿名函数,map(函数,参数)这个是map的语法,这个函数可以传匿名函数
calc1=map(lambda n:n*n,[1,2,3,5])
for i in calc1:
print i
四、函数式编程,就是对于一些运算,可以用函数来代替,简化代码,也就是把一些运算过程写成嵌套的函数调用
举例:
现在有这样一个数学表达式:
  (1 + 2) * 3 - 4
传统的过程式编程,可能这样写:
  var a = 1 + 2;
  var b = a * 3;
  var c = b - 4;
函数式编程要求使用函数,我们可以把运算过程定义为不同的函数,然后写成下面这样:
  var result = subtract(multiply(add(1,2), 3), 4);
这段代码再演进以下,可以变成这样
add(1,
992f
2).multiply(3).subtract(4)
五、高阶函数:变量可以指向函数,函数的参数能接受变量,也就是说一个函数的参数可以让另外一个函数作为参数

例如:
def add(x, y, f):
return f(x) + f(y)
print add(1,2,lambda n:n*n)
#f是一个匿名函数,这个例子就是函数作为另外一个函数的参数
六、内置函数
例如如下函数:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐