五、函数

chocolateone / 2023-09-03 / 原文

函数

  1. 定义:定义成函数后,再通过调用函数来实现代码的复用性。

1.语法规则:def 函数名():

存放要封装的代码,重复的代码

C:\Users\巧克力\AppData\Local\Temp\1612612129(1).png

2.解释函数的组成部分

def 是关键字,定义函数的关键字

3. 函数的调用:函数名()

4. return的用法(关键字):return 返回的值是可以把值赋值给变量的。用法主要有两个,第一是结束方法;第二是带出返回值。

C:\Users\巧克力\AppData\Local\Temp\1612674833(1).png

C:\Users\巧克力\AppData\Local\Temp\1612846660(1).png

  1. 函数参数
  2. 定义:函数里面需要改变的值,本质就是变量
  3. 语法格式:

def 函数名(参数):

  1. 参数的种类:必备参数,默认参数不定长参数

必备参数:变量名,你定义了就必须要传

默认参数:调用的时候可以不传,不传为定义的默认值,如果传了,就是传入的值

不定长参数:

元组不定长参数:把传入的参数放到元组当中

典不定长参数:把传入的参数放到字典中

C:\Users\巧克力\AppData\Local\Temp\1612676160(1).png

C:\Users\巧克力\AppData\Local\Temp\1612676555(1).png

  1. 拆包:元组的参数拆包,字典的参数拆包

元组的参数拆包

C:\Users\巧克力\AppData\Local\Temp\1612677136(1).png

字典的参数拆包:

C:\Users\巧克力\AppData\Local\Temp\1629561734(1).png

C:\Users\巧克力\AppData\Local\Temp\1629561794.png

  1. 函数的作用域:局部变量,全局变量
  2. 局部变量:函数内部定义的变量在函数外部不可以使用(函数内部的变量),是局部变量

C:\Users\巧克力\AppData\Local\Temp\1612698734(1).png

  1. 全局变量:如果想要在函数内部改变外面不可变对象变量的值,则需要在函数内部使全局变量

C:\Users\巧克力\AppData\Local\Temp\1612697887(1).png

注意:可以函数外面访问和使用,也可以在函数内部访问,不可变的是地址,可变的是数据

闭包

定义:把内部函数(func1)和外部变量(var1)都称为闭包

C:\Users\巧克力\AppData\Local\Temp\1612844638(1).png

游戏血量的保护:

C:\Users\巧克力\AppData\Local\Temp\1612845424(1).png

闭包的作用:可以在外部修改函数内部的变量值,是函数内部与外界沟通的桥梁(保护数据,返回指定修改的函数)

  1. 递归和匿名函数
  2. 递归函数(减法校验):

定义:递归函数简单来说就是函数内部调用自己,和while循环类似,也需要一个结束条件,否则超出递归深度就会报错

C:\Users\巧克力\AppData\Local\Temp\1612848281(1).png

如求阶乘:10的阶乘 10*9*8*7*6*5*4*3*2*1

C:\Users\巧克力\AppData\Local\Temp\1612848791(1).png

  1. 匿名函数:匿名函数关键字(lambda)

定义:匿名函数就是没有函数名的函数,主要用来定义那种不是特别复杂的函数,常用用于函数的参数中

语法规则:lambda 参数:(自带return)要执行的代码

C:\Users\巧克力\AppData\Local\Temp\1612849876(1).png

实例运用:

C:\Users\巧克力\AppData\Local\Temp\1612851737(1).png