Python基础(函数、函数的递归)

--------小编学习python的第七天总结-------

函数

概述:函数是一段具有特定功能的代码段,只需写一次,可以重复调用,提高了代码的复用性

函数的声明和调用

函数的声明:
def 函数名(形参)
注释:函数说明
函数体
return
调用的格式:
函数名(实参)
Python基础(函数、函数的递归)_第1张图片

函数的参数

参数:
    形参:在定义函数时写在()中的
    实参:在调用函数时写在()中的
位置参数:
    实参与形参的位置一一对应
关键字参数:
    通过形参名=实参这种格式传递参数,不受形参位置的影响,根据关键字给指定的形参传递参数
默认值参数:
    在声明函数时,给形参设置默认值,但是默认值参数,要写在位置参数的后面
可变参数
格式:
    def 函数名(*args,**kwargs)
    *args:元组参数(非关键字收集参数)
    调用函数时,将传递的多余的位置参数进行收集,收集到args参数中,且是元组类型
    参数顺序:
    位置参数,非关键字收集参数,关键字参数,默认值参数
    **kwargs:字典参数(非关键字收集参数)
    将多余的参数使用kwargs参数以字典形式进行收集
    参数顺序:
    位置参数,元组参数,关键字参数,默认值参数,字典参数

函数的返回值

使用return返回函数的结果
没有返回值的函数返回的是None
return后面可以将多个值返回,值与值之间用逗号隔开,但是返回的是一个元组类型

递归函数

函数自己调用自己,这种方式称为递归
递归函数必须留有出口
递归的最大层级为996

函数的调用实现实质上是利用压栈操作(先进后出)
函数调用时,,在栈中压入栈帧,当函数执行结束,栈帧去除
函数可以进行多次多调用,调用次数没有限制, 递归会导致内存溢出
递归的缺点:消耗内存,效率比较低
优点:逻辑更为直观

函数参数类型问题

给函数传递不可变类型的参数,函数内部修改数据,对函数外部的变量没有影响
Python基础(函数、函数的递归)_第2张图片
结果:
Python基础(函数、函数的递归)_第3张图片
给函数传递可变类型的参数,函数内部修改数据,函数外部的变量也会跟着改变
Python基础(函数、函数的递归)_第4张图片
结果:
在这里插入图片描述

你可能感兴趣的:(python,递归法,函数式编程)