函数及常用的内置函数

161 阅读4分钟

函数的定义及调用

函数的定义

  • 函数是将一段实现功能的完整代码,使用函数名称进行封装,通过函数名称进行调用。以此达到一次编写,多次调用的目的
  • 使用函数可以实现代码的重用性
  • Python中函数定义使用 def 关键字
  • 语法结构 image.png

函数的调用

  • 无返回值方法的调用:函数名(参数列表)

函数使用的总结

  • 函数定义
    • 关键字 def
    • 确定函数名称、参数名称、参数个数、编写函数体(用于实现函数功能的代码)
  • 函数调用
    • 通过函数名进行调用函数
    • 对函数的各个参数进行实际的赋值
  • 函数执行
    • 使用实际参数参与函数功能的实现
  • 函数返回结果
    • 函数执行结束后,如果使用 return 进行返回结果,则结果被返回到函数的调用处

函数的参数传递

形式参数与实际参数

形式参数:函数定义处的参数

实际参数:函数调用处的参数

image.png

参数的类型

位置参数

  • 调用时的参数个数和顺序必须与定义的参数个数和顺序相同

关键字参数

  • 函数调用时,使用 “形参名称=值” 的方式进行传参,传递参数顺序可以与定义时的顺序不同

位置参数在关键字参数之后程序会报错

默认值参数

  • 函数定义时,直接形式参数进行赋值,在调用时如果该参数不传值,将使用默认值,如果该参数传值,则使用传递的值

同时存在位置参数和默认值参数时,默认值参数放后【函数定义时】

可变参数

  • 个数可变的位置参数
    • 在参数前加一个星(*para)
    • 函数调用时可接收任意个数的实际参数,并放到一个元组中
    • 如果实际参数是列表,想要将各个列表值转入元组,在调用时参数前加一个星,会将列表进行解包
  • 个数可变的关键字参数
    • 在参数前加两个星(**para)
    • 在函数调用时可接收任意多个 “参数=值” 形式的参数,并放到一个字典中

函数的返回值

  • 函数的返回值就是函数执行结束之后的结果(可有可无)
  • 语法结构:return value
  • return 可以出现在函数中的任意一个位置,用于结束程序
  • 在函数调用处可以将返回值放到变量中进行存储
  • 可返回一个值,或多个值,如果是多个值,结果是一个元组类型
  • 如果函数没有使用 return 关键字,那么函数的返回值为 None

变量的作用域

局部变量与全局变量

局部变量

  • 函数定义处的参数与函数内部定义的变量
  • 仅在函数内部生效
  • 函数执行结束,变量的生命周期结束

全局变量

  • 函数外定义的变量或函数内部使用 global 关键字修饰的变量
  • 整个程序中都有效
  • 程序运行结束,变量的生命周期结束
  • 当全局变量与局部变量重名时,局部变量优先级高

image.png

image.png

image.png

匿名函数lambda

匿名函数

  • 匿名函数是指没有名字的函数
  • 该函数只能使用一次
  • 使用关键字 lambda 定义
  • 语法结构:result=lambda 参数列表:表达式

image.png

image.png

image.png

函数的递归

什么是递归函数

  • 在一个函数的函数体内调用该函数本身,该函数就是递归函数

递归的组成部分

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

递归的调用过程

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

递归的优缺点

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

使用递归来计算阶乘

image.png

斐波那契数列

  • 斐波那契数列,又称黄金分割线,因数学家莱昂纳多·斐波那契以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列: 1、1、2、3、5、8、13、21、34
  • 从第三项开始,每项都等于前两项之和: f(n)=f(n-1)+f(n-2)

常用的内置函数

数据类型转换函数

image.png

image.png

image.png

数学函数

image.png

image.png

image.png

迭代器操作函数

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

其他函数

image.png

image.png

image.png

image.png

image.png