1.语法
def 函数名 ([参数列表]) :
'''文档字符串''' #说明函数用处
函数体/若干语句
def test_01(a,b):
'''定义一个函数test_01,并求和'''
print("{0},{1},{2}".format(a,b,(a+b)))
test_01(5,6)
5,6,11
2.要点
1.Python 执行 def 时,会创建一个函数对象,并绑定到函数名变量上.
2.调用函数(通过参数命名实现调用)之前,必须要先定义函数,即先调用 def 创建函数对象
(1)内置函数对象会自动创建
(2)标准库和第三方库函数,通过 import 导入模块时,会执行模块中的 def 语句
3.参数列表
(1)圆括号内是形式参数列表,有多个参数则使用逗号隔开
(2)形式参数不需要声明类型,也不需要指定函数返回值类型
(3)无参数,也必须保留空的圆括号
(4)实参列表必须与形参列表一一对应
4.形式参数是在定义函数时使用的。 形式参数的命名只要符合“标识符”命名规则即可。
在调用函数时, 传递的参数称为“ 实际参数” , 简称“ 实参”
5.return 返回值要点:
1.如果函数体中包含 return 语句,则结束函数执行并返回值;
2.如果函数体中不包含 return 语句,则返回 None 值。
要返回多个返回值,使用列表、元组、字典、集合将多个值“存起来”即可
def test_01(a,b):
'''测试return'''
return a+b
c = test_01(3,5)
print(c)
6.参数类型
1.位置参数:函数调用时,实参默认按位置顺序传递,需要个数和形参匹配。
def test_01(a,b):
print(a+b)
c = test_01(3,5)
8
2.默认值参数:我们可以为某些参数设置默认值,这样这些参数在传递时就是可选的。称为“默认值参数”。 默认值参数放到位置参数后面。
def test_01(a,b,c=12,d=20): #c,d参数的值固定
print(a+b+c+d)
c = test_01(3,5) #调动时不需要传c,d的参数
40
3.命名参数:我们也可以按照形参的名称传递参数,称为“命名参数”,也称“关键字参数”
def test_01(a,b,c=12,d=20):
print(a+b+c+d)
c = test_01(b=4,a=5) #强制命名,可以不区分顺序
41
4.可变参数指的是“可变数量的参数”。
分两种情况:
1.*param(一个星号),将多个参数收集到一个“元组”对象中。
def test_01(a,b,*c):
print(a,b,c)
c = test_01(1,2,3,4,5,6)
1 2 (3, 4, 5, 6)
2.**param(两个星号),将多个参数收集到一个“字典”对象中。
def test_01(a,b,**c):
print(a,b,c)
c = test_01(1,2,name = "cora",age = 18)
1 2 {'name': 'cora', 'age': 18}