python---函数2

来源:互联网 发布:开放式网络是什么意思 编辑:程序博客网 时间:2024/06/03 18:54
1.递归函数
• 在写递归函数时要有一个明确的结束条件;
• 在递归时,问题规模要越来越小;
• 递归函数效率不高,函数调用是通过栈的数据结构实现的,
  每调用依次,栈就会多一层,最多999层,否则会出现栈溢出。

####### 实例 #######
1)递归求阶乘
def fact(n):
    if not isinstance(n, int):
        print 'ERROR'
    else:
        if n == 1:
            return 1
        return fact(n-1)*n
print fact(5)
结果:120

2)实现二分的效果
def fun(n):
    if not isinstance(n, int):
        print 'ERROR'
    else:
        print n
        b = int(n/2)
        if b>0:
            return fun(b)
fun(10)
结果:10
           5
           2
           1


2.函数式编程

面向对象编程语言:java,c++, python
面向过程编程语言:c
面向函数编程语言:lisp,erlang

面向过程:

    a = 13 + 10
    b = a * 2
    c = b -8
面向函数:
    result = jian(multipy(add(13,10),2),8)

3. 高阶函数
函数可以当作参数去传递
def fun1(x,y,fun):
    return fun(1,2)
print  fun1(1,2,max)
结果:2