当前位置:首页>笔记分享>Python笔记>Python基础>Python函数

Python函数

什么是函数?
函数:函数就是执行特定任务和以完成特定功能的一段代码
为什么需要函数?

  • 复用代码
  • 隐藏实现细节
  • 提高可维护性
  • 提高可阅读性便于调试

    1、函数的创建和调用

    函数的创建

    def 函数名(输入参数):
    函数体
    return xxx
    # 例
    def calc(a,b)
    c = a + b
    return c

    函数的调用

    函数名(实际参数)

    # 例
    result = calc(10,20)
    print(result)

2、函数的参数传递

形参的位置是在函数的定义出,实参是在函数的调用处

  • 位置传参:根据形参对应的位置进行实参传递
  • 关键字传参:根据形参的名称进行实参传递
#位置传参
calc(10,20)
#关键值传参
calc(b=10,a-20)

总结:
在函数调用过程中,进行参数传递时,如果是不可变对象,在函数体的修改不会影响实参值,如果是可变对象,在函数体的修改会影响到实参的值

3、函数的返回值

  • 函数返回多个值的时候,结果为元组
  • 函数返回值如果是1个,直接返回原类型
  • 函数如果没有返回值,return可以省略

4、函数的参数定义

函数定义默认参数值

  • 函数定义时,给形参设置默认值,只有与默认值不符时,才需要传递实参
    def fun(a,b=10):  #b称为默认值参数
    print(a,b)
    #调用函数
    fun(100) #只传递一个参数,b采用默认值
    fun(20,30) #30替换默认值10

    个数可变的位置参数

  • 定义函数时,可能无法事先确定传递的位置实参的个数时,使用可变的位置参数
  • 使用*号定义个数可变的位置参数
  • 结果为一个元组
    #可变长参数
    def fun(*arg):
    print(args)
    fun(10)
    fun(10,20)
    fun(10,20,30)

个数可变的关键字形参

  • 定义函数时,无法事先确定传递关键字参数的个数时,使用可变的关键字形参
  • 使用**定义个数可变的关键字形参
  • 结果为一个字典
def fun(**args)
    print(args)

fun1(a=10)
fun2(a=1,b=2,c=3)

注意:个数可变的位置参数和个数可变的关键字参数,都最多只能有一个,当两个同时存在时,个数可变的位置参数必须在关键字参数前

函数参数的总结

将列表当作实参传递前面加*
将字典当作实参传递前面加*
在形参列表中途加入
代表后面的参数传递必须是关键字传参

5、变量的作用域

  • 程序代码能访问该变量的区域
  • 根据变量的有效范围可以分为全局变量和局部变量
    全局变量:函数体外定义的变量,可作用于函数体内
    局部变量:在函数内定义并使用的变量,只在函数内部有效,局部变量使用global声明这个变量就会变成全局变量 global 变量名

6、递归函数

什么是递归函数

  • 如果在一个函数的函数体内调用了该函数本身,这个函数就称为递归函数

    递归的组成部分

  • 递归调用与递归终止条件

    递归的调用过程

  • 每递归调用一次,都会在栈内分配一个栈帧
  • 每执行一次函数,都会释放相应的空间

    递归的优缺点

  • 缺点:占用内存多,效率低下
  • 优点:思路和代码简单

    7、总结

    总结

给TA打赏
共{{data.count}}人
人已打赏
Python基础Python笔记

Python字符串

2021-9-27 15:33:40

Python基础Python笔记

Python Bug由来及分类

2021-9-28 15:58:34

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
购物车
优惠劵
有新私信 私信列表
搜索