函数——基本语法,嵌套匿名高阶递归函数

Posted GraceZen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数——基本语法,嵌套匿名高阶递归函数相关的知识,希望对你有一定的参考价值。

  • 定义
    • 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可
  • 特性
    • 减小重复代码
    • 使程序变的可扩展
    • 易维护
  • 函数参数
    • 定义函数可以带参数,也可不带参数
    • 形参:只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数则不能再使用该形参变量
    • 实参:可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值
  • 默认参数
  • 1 def stu_register(name,age,course,country="CN"):
    #代码中country即为默认参数,当调用函数时,如果country不指定的话,则默认为“CN”,指定了的话,为指定的数
    #在定义函数时,默认参数要放在最后面
  • 关键参数
    • 正常情况下,给函数传参数要按顺序,不想按顺序就可以用关键参数,只要指定参数名即可(指定了参数名的参数就叫关键参数)
    • 关键参数必须放在位置参数(以位置顺序确定的高对应关系的参数)之后
    • 1 def stu_register(name, age, course=PY ,country=CN):
      2 
      3 #调用
      4 stu_register("王山炮",course=PY, age=22,country=JP )
      5 
      6 #不可以用下面这两条
      7 stu_register("王山炮",course=PY,22,country=JP )
      8 stu_register("王山炮",22,age=25,country=JP
  • 非固定参数  
    • 在定义函数时不确定用户想传入多少个参数,就可以使用非固定参数
    • *args:def func(a,*args),传过来的所有参数打包成元组发送给args,通常放在最后,要不然会截胡
    • 1 #方式一:
      2 send_alert(报警,z,w,q,a)
      3 #方式二:必须要带*
      4 send_alert(报警,*(z,w,q,a))
      5 send_alert(报警,*[z,w,q,a])
    • **kargs:def func(a,**kargs),会把多传入的参数变成一个字典形式发送给kargs
  • return
    • 终止函数,即使return后面还有代码,也不执行
    • 若函数没有return的话,函数返回None
  • 全局变量  &  局部变量
    • 局部变量:在函数内部定义的变量为局部变量,作用域为定义该变量的函数
    • 全局变量:在函数外,定义在函数外部一级代码的变量,全局能用,作用域为整个程序
    • 全局变量不能调用局部变量
    • 函数内部调用全局变量:只要函数内部没有和全局变量同名的局部变量即可
    • 在函数内修改全局变量:在函数内定义:global name,实际项目中,不建议用global,一般情况下不用
    • 在函数内部修改列表,可通过切片方式修改列表,如果要整体修改的话,就要使用global了
  • 嵌套函数
    • 函数内部可以再次定义函数
    • 执行需要被调用
  • 匿名函数
    • 不需要显示指定函数名
    • 1 calc = lambda x,y:x**y
      2 print(calc(2,5))
  • 高阶函数
    • 接收一个或多个函数作为输入
    • return返回另外一个函数
  • 递归函数
    • 在函数内部,可以调用其他函数,如果一个函数在内部调用自身函数,这个函数就是递归函数
    • 两个基本要素,只有具备了这两个基本要素,才能在有限次计算后得出结果
      • 边界条件:确定递归到何时终止,也称为递归出口。
      • 递归模式:大问题是如何分解为小问题的,也称为递归体。 
      • 技术分享图片
        1 def func(n):
        2     if n == 1:
        3         return 1
        4     return n*func(n-1)
        5 print(func(4))
        View Code 



以上是关于函数——基本语法,嵌套匿名高阶递归函数的主要内容,如果未能解决你的问题,请参考以下文章

python--递归函数匿名函数嵌套函数高阶函数装饰器生成器迭代器

8-[函数]-嵌套函数,匿名函数,高阶函数,递归函数

Python 函数递归内置函数

python函数(全局变量,局部变量,作用域,递归函数,高阶函数,匿名函数)

Python学习,第八课 - 函数

Python 03--函数递归内置函数