Chapter 9 函数基础内容

Chapter 9 函数基础内容

Statement文章声明:仅作为个人学习笔记,一切失误概不负责。不杠不贬,文明网络环境建设!!


一、函数的定义

1. 函数的概念(什么是函数) - 机器

函数就是实现某一特定功能的代码的封装。
(函数就是把实现某一功能的代码达成一个包,以后再需要这段代码的功能的时候不需要再写这段代码,而是直接调用这段函数

2. 函数分类(根据函数是谁创建的)
2.1 系统函数(别人造好的机器) - python自带的函数,例如:print、input、type、max、min、sorter等
2.2 自定义函数(自己造的机器) - 由程序员自己创建的函数
3. 定义函数/创建函数 - 造机器

语法:
def 函数名(形参列表):
函数说明文档
函数体

说明:
def - 固定写法;关键字
函数名 - 由程序员自己命名,但是必须符合命名要求和规范
要求:是标识符;不能说关键字
规范:见名知义(看到函数名就大概知道这个函数对应的功能是什么);
字母都小写,多个单词用下划线隔开;
不使用系统的函数名、类名、模块名

(): - 固定写法

形参列表 - 以‘变量名1,变量名2,变量名3,… ’的形式存在,这里的变量名可以有也可以没有。
形参的作用:将函数外部的数据传递到函数里面
怎么确定的形参:看实现函数的功能需不需要额外的数据,需要几个(在 函数体中就把形参当做对应的数据来使用)

函数说明文档 - 本质就是一个多行注释,用来描述函数的功能和使用说法
函数体 - 结构上:和def保持一个缩进的一条或多条语句(至少一条)
逻辑上:函数体就是实现函数功能的代码

4.函数的调用 - 使用机器
4.1 定义函数不会执行函数体,调用函数才会执行函数体
4.2 怎么调用函数

语法:函数名(实参列表)

说明:
函数名: - 需要哪个函数的功能就调用哪个函数,就写哪个的函数的函数名
(注意:函数名必须是定义好的函数的函数名)
() - 固定写法

实参列表 - 以’数据1,数据2,数据3,…'的形式存在
实参就是通过形参从函数外部传递到函数内部具体的数据 (实参是用来给形参赋值的)

4.3 函数调用过程

当代码执行到函数调用语句的时候:
第一步:回到函数定义的位置
第二步:传参(用实参给形参赋值)
第三部:执行函数体
第四部:确定函数返回值
第五步:回到函数调用的位置接着往后执行

二、函数的返回值

1. 返回值

返回值就是从函数内部传递到函数外部的数据

1.1 怎么确定函数返回值(怎么将指定的数据作为函数返回值)
看执行函数体的时候有没有遇到return,如果遇到return,return后面的值就是函数的返回值;如果没有遇到return,返回值是None

1.2 怎么获取函数返回值
获取函数调用表达式的值就是获取函数的返回值
(每个函数调用表达式都是有结果,结果是返回值;所以函数的返回值能做的事,函数调用都可以做)
函数调用表达式:调用函数的语句

1.3 什么时候需要返回值
如果实现函数的功能产生了新的数据,我们就应该将新的数据返回

原因:每次调用函数的时候,系统会自动为这个函数创建一个临时的栈区域,用来保存在函数中产生的数据(形参也是保存在栈区域),
当函数调用结束的时候系统会自动释放这块内存(内存中的数据会被删除),只有返回值不会直接删除

2. return

return在函数中有两个作用:
2.1 返回返回值 - 谁在return的后面,谁就是返回值
2.2 提前结束函数 - 执行函数体的时候如果遇到return,函数直接结束

三、函数的参数

1. 位置参数和关键字参数 - 根据实参传递方式分类

1.1 位置参数:以’实参1,实参2,实参3,…'的形式存在,通过位置一一对应的方式来给形参赋值
1.2 关键字参数:以’形参1 = 实参2 , 形参2 = 实参2, …‘的形式存在,直接用=来确定实参和形参的对应函数

注意:位置参数和关键字参数可以混用,混用的时候位置参数必须在关键字参数的前面

2. 参数默认值

定义函数的时候,可以通过’形参名 = 值’的方式给参数赋默认值,如果一个形参有默认值,那么在调用函数的时候这个形参不用赋值。

注意:定义函数的时候,如果有的参数有默认值有的参数没有,那么没有默认值的参数必须放在有默认值参数的前面

3. 参数类型说明 - 定义函数的时候指定参数类型

参数类型说明即可以提示使用者在调用函数的时候该传什么类型的数据,也可以让参数在函数体中使用的时候有代码提示。

3.1 方法1-没有默认值的参数: 形参:类型
方法2-给参数赋默认值,默认值的类型就是参数的类型

4. 不定长参数

4.1 带*的不定长参数

定义函数的时候,如果在某个形参前面加星号,那么这个参数就变成了一个不定长参数,调用的时候这个形参可以接受若干个实参。

本质:如果形参有*,那么这个参数就会变成一个元组,它接收到的实参会作为这个元组的元素

注意:带的不定长参数在传参的时候只能用位置参数
定长参数和带
的不定长参数混用的时候,*前面的定长参数必须用位置参数传参,*后面的定长参数必须用关键字参数传参

4.2 带**的不定长参数

本质:如果形参前有**,那么这个参数就会自动变成一个字典,它接收到的所有实参就会变成这个字典的键值对

注意:传参的时候只能用关键字参数传参

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值