说到 函数传参,先说一下函数的定义
函数由函数名、参数、和函数体组成,格式如下
def 函数名(形式参数):
函数体
return返回值
- 形参:形式参数,就是写在函数定义出的函数
- 实参:实际参数,就是函数调用时传递的参数
- 位置参数:也叫必传参数,没有默认值的参数
- 默认值参数:定义时由默认值,调用时可以不传,必须写在最后
- 关键字参数:在函数调用时指定参数名字,参数的位置就无所谓。
- 可变长度参数:函数调用时可以传递比定义外更多的参数 多出来的参数会保存在args,和kwargs中
def var_len_args(a, b, name='goudan', *args, **kwargs):
print(a, b)
print(name)
# 是一个元组,保存多传的位置参数
print(args)
# 是一个字典,保存多传的关键字参数
print(kwargs)
var_len_args(1, 2, 3, 4, age=10)
函数的调用
函数的调用很简单,我们只要根据函数的定义形式
将实际计算时的参数值传进去(也可能没有参数)
函数调用格式
函数名(实际参数)
def add(a,b):
c=a+b
return c
add(3,4)
这里的add(3,4)就是调用函数
函数调用写的参数是实际参数(‘实际’体现在参数是实际执行函数使用的)
函数定义写的参数是形式参数(‘形式’体现在他只是个格式和形式,真正函数执行时候还是先看实际参数)
参数的传递
函数调用时将实际参数传递给形式参数
1、参数按照位置顺序传递
刚才的add函数就是这种,按顺序,3传给a,4传给了b
def subtraction(a,b):
c=a-b
return c
subtraction(a=3,b=4)
这里定义了一个两数相减的函数
是一种赋值,所以这里的就和上个相加的例子中顺序传递参数不一样了
3、参数按默认值传递
有时候,可以在函数定义里给函数形参设定一个默认值
当函数实参没有传递值进来,就使用默认值
def subtraction(a,b=2):
c=a-b
return c
subtraction(4)