函数 - function
1.什么是函数
函数是一段被预定义,并可以被反复执行的 语句块
预定义:提前被声明好
反复执行:可以被反复使用
语句块:多条语句被封装到一起
2.作用
1.用于封装语句块,提高代码的重用性
2.定义用户级别的功能
3.语法
def 函数名(形参列表):
语句块
说明: 1.函数的名字就是功能的名称 2.函数名的命名规则与变量名相同(标识符) 3.函数名是一个变量(不要轻易对其赋值) 4.函数有自己的名字空间,在函数外部是不可以访问函数内部的变量的,在函数的内部是可以访问函数外部的变量,但不能修改此变量 5.函数如果不需要传参的话,形参列表处可以为空 6.语句块不能为空,如果为空的则填充pass占位
4.函数的调用
函数名(实参列表)
实参:实际参数
5.带参的方法
1.声明
def show_name(name):
#name : 是该方法中需要的一个参数,需要在调用时传递进来辅助函数做运算。所以在声明时不会知道该参数的值是多少,只有在调用时才会确定
print("您的姓名是:",name)
2.调用
show_name("张三丰")
6.函数的返回值 - return 语句
1.什么是返回值
函数结束调用后,要返回给函数调用者的一个值
2.语法
return [表达式]
注:[] 可以省略不写
3.说明
1.return 语句 或 后面的表达式都可以省略,省略后相当于是return None
2.任何函数调用后,都可以接收返回值
如果函数有返回值:则得到对应的返回值
如果函数没有返回值:则得到的就是None
3.返回值如果返回一个序列的话,可以在函数调用处用多个值接收,也可以用一个值接收
7.函数的参数传递
1.传递方式
1.位置传参
序列传参
2.关键字传参
字典传参
2.位置传参
实际参数(实参)的对应关系与形式参数(形参)的对应关系是按照位置来依次对应的
def sum(a,b,c):
pass
sum(1,2,3)
说明:
1.形参和实参是通过位置进行传递和匹配的
2.实参的个数必须与形参的个数相同
3.序列传参 - 位置传参
序列传参是指在函数调用过程中,用 * 将序列拆解后按位置进行传递的传参方式
语法:
1.以序列作为实参的值传递给函数
序列:列表,元组,字符串
2.在序列前用 * 表示是序列传参
def show(a,b,c):
pass
show(*["AAA","BBB","CCC"])
4.关键字传参
关键字传参是指传参时,按照形参的名称给形参赋值
形参和实参是按照名称进行匹配的
5.字典关键字传参 - 关键字传参
字典关键字传参是指实参为字典,将字典用 ** 拆解后再进行关键字传的一种方式
说明: 1.字典的键名和形参名必须一致 2.字典的键名必须为字符串 3.字典的键名在形参中必须存在
6.函数的综合传参
函数的传参方式在能确定形参能唯一匹配到相应的实参的情况下任意组合
说明:
位置传参(序列传参) 在要 关键字传参(字典关键字传参) 的左侧
示例: def show(a,b,c): pass #有以下调用方式 show(100,200,300) show(100,*[200,300]) show(*(100,200),300) show(*[100],200,*(300,)) show(100,c=200,b=300) # 正确 show(300,a=200,b=100) # 错误 show(c=200,b=300,100) # 错误 show(100,**{‘c‘:300,‘b‘:200}) # 正确
8.函数的缺省参数
声明函数的时候,可以为形参指定默认值,在调用函数的时候,有默认值的参数可以不传参
语法:
def 函数名(形参名1=默认值1,形参名2=默认值2,...):
pass
注意:
缺省参数必须自右至左依次存在,如果一个参数有缺省值得话,那么其右侧的所有参数都必须由缺省值
def fun1(a,b=10,c):
pass
以上声明是错误的
def fun1(a,c,b=10):
pass
以上声明时正确的
原文:https://www.cnblogs.com/zhaoyang1997/p/10427650.html