函数function
定义
1. 用于封装一个特定的功能,表示一个功能或者行为。
2. 函数是可以重复执行的语句块, 可以重复调用。
作用
提高代码的可重用性和可维护性(代码层次结构更清晰)。
定义函数
调用函数
- 语法:函数名(实际参数)
- 说明:根据形参传递内容。
返回值
- 定义:
方法定义者告诉调用者的结果。 - 语法:
return 数据 - 说明:
return后没有语句,相当于返回 None。
函数体没有return,相当于返回None。
可变/不可变类型在传参时的区别
- 不可变类型参数有:
数值型(整数,浮点数,复数)
布尔值bool
None 空值
字符串str
元组tuple
固定集合frozenset - 可变类型参数有:
列表 list
字典 dict
集合 set - 传参说明:
不可变类型的数据传参时,函数内部不会改变原数据的值。
可变类型的数据传参时,函数内部可以改变原数据。
函数参数
函数参数
实参传递方式argument
位置传参
定义:实参与形参的位置依次对应。
序列传参
定义:实参用*将序列拆解后与形参的位置依次对应。
关键字传参
定义:实参根据形参的名字进行对应。
字典关键字传参
- 定义:实参用**将字典拆解后与形参的名字进行对应。
- 作用:配合形参的缺省参数,可以使调用者随意传参。
形参定义方式parameter
缺省参数
- 语法:
def 函数名(形参名1=默认实参1, 形参名2=默认实参2, …):
函数体 - 说明:
缺省参数必须自右至左依次存在,如果一个参数有缺省参数,则其右侧的所有参数都必须有缺省参数。
缺省参数可以有0个或多个,甚至全部都有缺省参数
位置形参
语法:
def 函数名(形参名1, 形参名2, …):
函数体
星号元组形参
- 语法:
def 函数名(*元组形参名):
函数体 - 作用:
收集多余的位置传参。 - 说明:
一般命名为’args’
形参列表中最多只能有一个
命名关键字形参
- 语法:
def 函数名(*, 命名关键字形参1, 命名关键字形参2, …):
函数体
def 函数名(*args, 命名关键字形参1, 命名关键字形参2, …):
函数体 - 作用:
强制实参使用关键字传参
双星号字典形参
- 语法:
def 函数名(**字典形参名):
函数体 - 作用:
收集多余的关键字传参 - 说明:
一般命名为’kwargs’
形参列表中最多只能有一个
参数自左至右的顺序
位置形参 --> 星号元组形参 --> 命名关键字形参 --> 双星号字典形参