定义
用于封装一个特定的功能,表示一个功能或者行为。
函数时可以重复执行的语句块,可以重复调用
作用
提高代码的可重用性和可维护性,代码层次结构清晰
定义函数
语法:
def 函数名(形参):
函数体
说明
-- def 关键字,意为“定义”
-- 函数名 对函数体中语句的秒数,命名规则与变量相同
-- 形参,方法定义这要求调用者提供的信息
-- 函数体,完成该功能的语句
函数的第一行语句可以选择性的使用文档字符串存放函数说明
调用函数
函数名(实参)
返回值
定义:方法定义这告诉调用者的结果
语法:return [表达式]
说明:
-- 表达式就是需要返回的结果
-- 不带表达式的return 相当于返回None
-- 不带return 语句,函数执行完后返回None,相当于在最后加了一条return None
可变 / 不可变类型在传参时的区别
不可变类型参数有:
数值型(整数,浮点数,复数)
布尔值 bool
None 空值
字符串 str
元组 tuple
固定集合 frozenset
可变类型参数有:
列表 list
字典 dict
集合 set
字节数据 bytearray
传参说明:
不可变类型的数据传参时,函数内部不会改变原来的值
可变类型的数据传参时,函数内部可以改变原来数据的值
函数参数
实参传递方式
位置传参
定义:实参与形参的位置一次对应
关键字传参
定义:实参根据形参的名称进行对应
形参定义方式
缺省形参
也称默认参数:让调用者可以有选择的传递需要的信息,不选择时使用默认值
位置形参
按照形参的位置一一对应
星号元组形参:
语法:def 函数名(*元组形参名)
作用:收集多余的位置传参,数量不限
说明:一般命名为 args,形参列表中最多只能有一个
关键字形参
按照关键字名称对应传参
双星号字典形参:
语法:def 函数名(**字典形参名)
作用:收集多余的关键字传参,数量不限
说明:一般命名为 kwargs,形参列表中最多只能有一个
参数自左向右的顺序
位置形参 -- 星号元组形参 -- 命名关键字形参 -- 双星号字典形参