函数的使用背景:
1、同样的代码需要写多次
2、功能需要改变的时候需要修改多处
1.什么是函数:函数就是对实现某一特定功能的代码块的封装。
2.函数的分类
1)系统函数(内置函数) ---系统本身存在的函数(已经造好的机器),程序员只需要调用就行。
print函数、input函数、len函数、sum函数、max函数等
2)自定义函数 ---程序员自己声明的函数(自己造机器)
3.函数的声明(定义) ---造机器
1)语法:
def 函数名(形参列表):
函数说明文档 用来解释函数
函数体
2)说明
def --- python声明函数的关键字
函数名 --- 程序员自己命名,表示符不能是关键字(和变量名要求一样)
见名知义(看到函数名大概知道函数的功能)
所有字母小写。
() --- 固定写法
形参列表 --- 变量名1, 变量名2 ,变量名3...(根据情况变量名的个数可以是0个、1个或者多个)
形参的作用:是用来将函数外部的数据传递到函数的里面。
: --- 固定写法
函数体 --- 和def保持一个缩进的一条或多条代码块。(实现函数功能的代码块)
3)初学者声明函数的步骤
第一步:确定函数的功能
第二步:根据功能确定函数名
第三步:确定形参(看实现函数的功能需不需要从外面传值,如果需要传值需要几个)
第四步:实现函数的功能
第五步:确定返回值
(!!!!!!!)注意:函数声明的时候,函数体是不会执行!
4.函数的调用 ---使用机器
1)语法:
函数名(实参列表)
2)说明:
函数名 --- 必须是已经声明过的函数
() --- 固定写法
实参列表 --- 数据1,数据2,数据3,...(实参是用来给形参赋值)
3)函数的调用过程(特别重要!!!!)
第一步:先回到函数声明的位置
第二步:用实参给形参赋值。(这个过程又叫传参,传参要保证每个形参都有值)
第三步:执行函数体
第四步:获取返回值
第五步:回到函数调用位置,接着往后执行。
5.位置参数和关键字参数
调用函数的时候根据实参的写法分为位置参数和关键字参数
位置参数:让实参的顺序和形参一一对应,中间用逗号隔开
关键字参数:以’形参名1=值1,形参名2=值2...’格式来确定实参
注意:如果既有位置参数又有关键字参数,位置参数必须在关键字参数前面
def f(a, b, c):
"""打印三个数"""
print(a, b, c)
f(c=30, b=20, a=10)
f(10, c=20, b=10)
f(10,c=19, a=90)
6.参数默认值
def f2(a, b, c=10):
print(a, b, c)
声明函数的时候,可以给形参符默认值。有默认值的形参,在函数调用的时候可以不用给这个形参赋值。
注意:声明的时候有默认值的参数要放在没有默认值的参数的后面
7.参数是类型说明
def c(a:int, b):
print(a+1)
python中类型只有说明的作用,没有约束的作用
1)参数赋默认值,
2)参数名:类型
8.不定长参数 --- 形参的个数不确定
def a(i, *c, b=0): #默认值优先级>*形参>普通形参
print(i,c)
声明函数的时候,在形参的前面加个,那么这个参数就变成不定长参数。
那么就可以同时接收多个实参(将这个参数变成一个元组)
注意:不带的参数,放在带*参数的前面
有默认值参数和长型函数的参数和普通参数的位置:普通参数>不定长参数>默认值参数
8.什么是函数的返回值
(1)返回值就是return关键字后面表达式的值,就是函数调用表达式的值。
1)return
return是函数体中的关键字(只能出现在函数体)。
作用:结束函数,确定函数返回值。
(2)函数调用过程:执行函数体、获取返回值
1)回到函数声明的位置
2)传参
3)执行函数体
4)执行完函数体,确定函数返回值
执行完函数体:函数体执行完、执行过程中遇到return
确定函数返回值:看执行函数的过程中有没有遇到return,遇到了return,return后面表达式的值就是函数的返回值
如图没有遇到return,函数的返回值就是None
5)回到函数调用位置,接着执行后面代码。(这个时候函数调用表达式的值就是函数的返回值)
2.什么时候需要返回值(初学者)。
指定思想:如果实现函数的功能会产生新的数据,就可以把这个数据最为函数的返回值
返回多个值: retur 返回值1,返回值2,...
网友评论