TreeMind树图在线AI思维导图
当前位置:树图思维导图模板IT互联网产品结构第六章 函数思维导图

第六章 函数思维导图

  收藏
  分享
免费下载
免费使用文件
苓南 浏览量:102023-11-02 20:44:42
已被使用0次
查看详情第六章  函数思维导图

函数是可以重复使用的用于实现某种功能的代码块

树图思维导图提供 第六章 函数 在线思维导图免费制作,点击“编辑”按钮,可对 第六章 函数  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:9cf5df18c3266ba8ca71f1637fc33e9a

思维导图大纲

第六章 函数思维导图模板大纲

函数是可以重复使用的用于实现某种功能的代码块

普通函数

基本定义及调用

定义的语法----def 函数名(参数列表):函数体

定义函数需遵守的规则

1.函数代码块从形式上包含函数名部分和函数体部分

2.函数名部分以def关键字开头,后接函数标识符名称和圆括号“()”,以冒号“:”结尾

3.圆括号内可以定义参数列表(可以为0个、1个或多个参数),即使参数个数为0,圆括号也必须有;函数形参不需要声明其类型

4.函数的第一行语句可以选择性地使用文档字符串存放函数说明

5.函数体部分的内容需要缩进

6.使用“return[表达式]”(方括号表示可写可不写其中的内容)结束函数,选择性的返回一个值给调用方,不带表达式的return语句相当于返回None

函数定义完成后就可以直接被调用

文档字符串

函数的第一行语句可以选择性地使用文档字符串存放函数说明

关于文档字符串的约定

1.第一行应为对象目的的简要描述

2.如果有多行,则第二行应为空白行。其目的是将摘要与其他描述从视觉上分隔开。

可以使用内置函数help(函数名)或者“函数名.__doc__”来查看函数的注释

函数标注

函数及函数的形参都可以不指定类型,但是这往往会导致在阅读程序或函数调用时无法知道参数的类型

函数标注是关于用户自定义函数中使用的参数类型的元数据信息,它以字典的形式存放在函数的“__annotations__”属性中,并且不会影响函数的任何其他部分。

形参的标注方式是在形参后加冒号和数据类型,函数返回值的标注方式是在形参列表和def语句结尾的冒号之间加上复合符号“->”和数据类型

函数标注仅仅是标注了参数或返回值的类型,但并不会限定参数或返回值的类型,在函数定义和调用时,参数和返回值的类型是可以改变的

return语句

1.用于退出函数

2.选择性地向调用方返回一个表达式

3.不带表达式的return返回None

变量作用域

函数内部定义的变量一般为局部变量,函数外部定义的变量为全局变量

变量起作用的代码范围称为“变量作用域”

变量的作用域都从定义的位置开始,在定义之前访问会报错。在独立代码文件中,直接使用没有定义的变量也会报错

即使全局变量与局部变量名称相同,但由于作用域不同,故其值也不同

在函数内部可以通过global定义的方式来定义全局变量,该全局变量在函数运行结束后依然存在并可访问

函数的递归调用

构成递归的条件

1.子问题与原问题为同样的问题,但规模小更为简单

2.调用本身须有出口,不能无限制调用,即有边界条件

匿名函数

匿名函数即没有采用def语句定义函数的标准方式,而用lambda方式来简略定义的函数

lambda表达式只可以包含一个表达式,常用于不想定义函数但又需要函数的代码复合功能的场合

匿名函数(lambda表达式)的特点

1.只包含一个表达式,函数体比def简单很多,所以更简洁

2.它的主体是一个表达式,而不是一个代码块,故只能封装有限的逻辑

匿名函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数

匿名函数的定义----匿名函数名=lambda[arg1[,arg2,......argn]]:expression【arg*为参数列表,expression为表达式,表示函数要进行的操作】

参数传递

参数是函数的重要组成成分。函数定义语法中,函数名后括号内的参数列表是用逗号分隔开的形参,可以包含0个或多个参数。在调用函数时,向函数传递实参,根据不同的实参参数类型,将实参的值或引用传递给形参

变量本身并无类型,也不直接存储值,而是存储了值的内存地址或者引用(指针)

给函数传递不可变对象

对于不可变对象的实参,传递给函数的仅仅是值,函数不会影响其引用(存放地址)

给函数传递可变对象

函数可变对象的实参,事实上是把值和引用都传递给形参。函数内部对形参的改变,同时也改变了实参

关于参数传递的总结

1.不可变对象----对于函数fun(a),调用时传递不可变对象类型的值给a,传递的只是a的值,没有影响a对象本身。如果在fun(a)内部修改a的值,则新生成一个a

2.可变对象----对于函数fun(la),调用时传递可变对象类型的值给la,则是将la真正地传递过去,在函数fun(la)内部修改la后,函数fun(la)外部的la也会受影响

参数类型

位置参数

在函数调用时是必须有的,而且顺序和数量都要与声明时保持一致【缺一不可,也不可多】

关键字参数

在函数调用时,参数的传入使用了参数的名称,则该类参数称为关键字参数。

它可以允许函数调用时参数的顺序与声明时不一致,故在函数调用中,关键字参数放置的顺序可以随意,但是关键字参数必须跟随在位置参数的后面

默认参数

如果在函数定义时,某个参数使用了默认值,则该参数是默认参数;如果函数调用时没有传递该参数,则使用默认值

不定长参数

函数参数的个数不确定时,往往需要用到不定长参数

不定长参数的定义方式

*parameter----接受多个实参并将其放在一个元组中

**parameter----接受键值对并将其放在字典中

特殊形式

Python为确保可读性和运行效率,可以对参数传递形式进行限制:通过在函数定义的参数列表中增加“/”或“*”(可选),确定参数项是仅按位置、按位置也按关键字,还是仅按关键字传递;若二者皆未使用,则参数类型可以是位置参数或者是关键字参数

参数传递的序列解包

函数定义的参数列表如果包含多个位置参数的形参,则可以用列表、元组、集合、字典或其他可迭代的对象作为实参来进行参数传递,需要在实参名字前加一个星号(*),此时Python解释器会对实参进行所谓的解包操作,将序列中的值分别传递给多个单变量的形参

单个星号(*)是对参数传递的序列解包的情形,而两个星号(**)则是针对字典的值进行解包的

相关思维导图模板

第六章  食品安全管理思维导图

树图思维导图提供 第六章 食品安全管理 在线思维导图免费制作,点击“编辑”按钮,可对 第六章 食品安全管理  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:b615e69c1c0fc8370834543c64f230de

财管第六章思维导图

树图思维导图提供 财管第六章 在线思维导图免费制作,点击“编辑”按钮,可对 财管第六章  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:3053af3c37e2377448f359617a44ffe9