进一步认识函数

什么是前向引用:

  就是一个函数a体内嵌套另一个函数b,b函数的声明必须早于a函数对b的引用

def lizi():
    print("in the lizi")
    info()
lizi()
def info():
    print("in the info")
View Code

什么是局部变量:

  就是一个变量只在函数里生效,函数就是这个变量的作用域;只有字符串,数字在局部里面更改不了全局的变量,但字典,集合,列表是可疑在局部变量中更改的,而元祖本色就不能更改

name = "zfq"

def chang():
    name = "zx"
    print(name)

chang()
print(name)
View Code

  可以通过global将这个局部变量作用于全局(不过不推荐使用global,也不推荐改变全局变量,导致后期维护困难)

name = "zfq"

def chang():
    global name
    name = "zx"
    print(name)

chang()
print(name)
View Code

关于递归函数:

  在函数内部,可以调用其他函数,如果调用的是自身,则这个函数就是递归函数;最多递归999层,当到998层还没有结果,则报错

  递归函数的定义:

    1.必须有一个明确的结束条件

    2.每次进入更深一层递归时,问题规模相比上次递归都应该有所减少

    3.递归效率不高,递归层次过多会导致栈溢出

def calc(n):
    print(n)
    if int(n/2)==0:
        return n
    return calc(int(n/2))

calc(10)
View Code

关于函数式编程:

  是一种编程范式,即一种如何编写程序的方法论

关于高阶函数:

  变量指向函数,函数的参数能接受变量,那么一个函数的就可以接受另一个函数作为参数

 

#高阶函数,将abs函数当成参数传入
def add(a,b,f):
    return f(a)+f(b)
res = add(3,-6,abs)#abs表示绝对值的方法

print(res)

 

posted @ 2017-08-29 21:27  咸鱼功阀术  阅读(139)  评论(0编辑  收藏  举报