什么是函数?
函数就是对实现某一特定的代码段的封装函数的分类:
- 内置函数:python已经实现的函数,程序员直接使用,例如print(),input()等。相当于系统造好的机器。
- 自定义函数:自己定义的函数,相当于自己造机器。
-
函数的定义(声明)
1)语法:
def 函数名(参数列表):
函数名
2)说明:
def - 关键字,固定写法,python中声明函数的关键字
函数名:要求:不能是关键字的标识符。规范:见名知义、所有字母小写,多个单词用下划线隔开,不能和系统的函数名重名。
() -固定写法
参数列表 -形参1,形参2,形参3.....这儿的参数叫形参(变量),形参可以没有,也可以有多个。形参的功能是将函数外面的数据传递到函数里面
: -固定写法
函数体 -与def保持一个缩进的代码段;函数体分为函数说明文档和实现函数功能的代码段。
3)初学者声明函数的步骤:
第一步:确定函数的功能
第二步:根据函数功能确定函数名
第三步:确定参数
第四步:实现函数功能
第五步:确定函数的返回值4)函数在函数声明的时候不会执行,调用函数时,才会执行。
-
函数的调用:
1)语法:
函数名(参数列表)
2)说明
函数名 -函数名对应的函数必须是已经声明的函数
() -固定写法
参数列表 -实参,用于给形参赋值
3)函数调用过程:
- 先回到函数声明的位置
- 用实参给形参赋值(传参),传参必须摆正每个参数都有值
- 执行函数体
- 执行完函数体再回到函数调用的位置,接着往后执行
-
函数的参数
1)根据实参的写法将参数分为位置参数和关键字参数
位置参数:调用函数的时候,实参的位置和形参的位置一一对应,然后保证每个形参都有值。
关键字参数:以形参名=值的方式来调用函数,这里形参的顺序可以和声明函数时候的形参的顺序不同。
注意:位置参数和关键参数可以混合使用,但是使用的时候一定要保证位置参数在关键字参数之前
2)参数默认值
声明函数的时候可以设置默认值。
注意:a. 如果设置默认值的时候,一部分又默认值,一部分没有默认值,那么没有默认值的参数一定要在有默 认值的参数之前。
b. 有默认值的参数,调用的时候可以不用传参;没有默认值的参数,调用的时候必须传参
c. 当我们传参的时候想要跳过某一个或者几个有默认值的参数,直接给后面的参数传参的时候,后面的参数必须使用关键字传参
3)参数类型说明
- 给参数设置默认值,参数类型和默认值一样。
- 以‘参数名:类型名’的方式说明参数类型。
4)不定长参数
- 声明函数时,在形参前面加一个*,可以将形参变成元祖,同时接受多个实参的值(形参-元祖)
- 声明函数时,在形参前面加**,可将形参变成字典,可以同时接受多个关键字参数的值(形参-字典)
注意:原则上,一个函数的参数中既可以有定常参数,也可以有带一个的不定长参数和两个*不定长参数。
如果同时存在带一个和带*的不定长参数,带一个的不定长参数必须放在两个的不定长参数之前。
-
返回值
1)返回值就是函数调用表达式的值,就是return关键字后面的值
2)返回值的作用是将函数体中产生的数据传递到函数外面
注意:函数调用表达式 -调用函数的语句;他的结果就是函数的返回值(返回值的获取)。
3)return关键字
return只能出现在函数体内
当执行函数体遇到return,函数体直接结束;并且将return后面的值作为函数的返回值返回。如果在执行函数体时,没有遇到return,函数的返回值为None.
-
函数调用过程:
- 先回到函数声明的位置
- 用实参给形参赋值(传参),传参必须摆正每个参数都有值
- 执行函数体
- 确定返回值(当执行函数体遇到return,函数体直接结束;并且将return后面的值作为函数的返回值返回。如果在执行函数体时,没有遇到return,函数的返回值为None)
- 回到函数调用位置,接着往下执行。(此时函数调用表达式的值才是函数的返回值)
4)什么时候用到返回值
只要实现函数的功能产生了新的数据,就可以把这个数据用返回值返回。
python中一个函数可以有多个返回值:return后给多个值,并用逗号隔开。(return 10,20)