day4 函数

面向对象:--》类--》class

面向过程:--》过程--》def

函数式编程:--》函数--》def


函数是逻辑结构化和过程化的一种编程方法
使用函数的三大优点:减少代码重复性;保持一致性;可扩展性
函数返回值的作用:作为后面程序逻辑判断的依据
函数的返回值不是只为数字
函数的调用:位置参数调用:与形参一一对应
关键字参数调用:与形参位置无关
关键参数写在位置参数后面
默认参数 特点:调用函数时,默认参数可有可无。
用途:程序默认安装路径;连接服务器默认端口
非固定参数 **kwargs---》字典 把n个关键字参数,转化为字典
*args---》元组 把n个位置参数,转化为元组
定义函数时,参数组要放在最后

global 调用全局变量

返回值作用:函数经过调用并开始执行,那函数外部程序就无法再控制函数执行的过程了,此时外部程序只能等待函数的执行结果了。
因为外部程序要根据函数的执行结构来决定下一步怎么走,


函数里可以嵌套函数
嵌套函数:函数里嵌套其它函数
递归函数:函数里嵌套自身
     递归特性:1. 必须有一个明确的结束条件

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

         3. 递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈                                           帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出)

 

  匿名函数就是不需要显式的指定函数

      #这段代码
      def calc(n):
      return n**n
      print(calc(10))
      #换成匿名函数
      calc = lambda n:n**n
      print(calc(10))

  匿名函数主要是和其它函数搭配使用

      res = map(lambda x:x**2,[1,5,7,4,8])
      for i in res:
      print(i)





高阶函数
变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数

    def add(x,y,f):
    return f(x) + f(y)
    res = add(3,-6,abs)
    print(res)



































posted on 2016-11-05 10:19  二十四岁半  阅读(161)  评论(0编辑  收藏  举报

导航