参数传递
在调用函数时,大多数情况下,主调用函数和被调用函数之间有数据传递关系,这就是有参数的函数调用的形式。函数参数的作用是传递数据给函数使用,函数利用接受的数据进行具体的操作处理。
函数的参数在定义函数时放在函数名称后面的一对小括号中:
def fun_bmi (person,height,weight): # (person,height,weight)指函数参数
一、形式参数和实际参数
形式参数和实际参数在作用上的区别:
形式参数:在定义函数时,函数名后面括号中的参数为“形式参数”。
实际参数:在调用函数时,函数名后面括号中的参数为“实际参数”。也即是将函数的调用这提供给函数的参数称为实际参数。
#定义或创建函数,此时函数参数obj为形式参数
defdemo(obj)
print(obj)
#调用函数,此时的函数参数mot和list时实际参数
mot="今天的温度很高,我要去冲个凉水澡。"
demo(mot)
list=['牡丹','菊花','桂花','梅花']
demo(list)
二、位置参数
位置参数也称必备参数,时必须按照正确的顺序传到函数中,即调用时的数量和位置必须和定义时的一样。
(1)数量必须与定义时一致
在调用你函数时,指定的实际参数的数量必须与形式参数的数量一致,否则会抛出TypeError异常,提示缺少必要的参数位置。
(2)位置必须与定义时一致
在调用你函数时,指定的实际参数的位置必须与形式参数的位置一致,否则将产生以下两种结果:抛出TypeEroor异常和产生的结果与预期不符
三、关键字参数
关键字参数是指使用形式呢参数的名字来确定输入的参数值。通过该方式指定实际参数,不在需要与形式参数的位置完全一致,只要将参数名写正确即可。
def_bmi(height=1.88,weight=140,person="李华") #计算李华的BMI指数
四、为参数设置默认值在
调用函数时,如果没有指定某个参数将抛出异常,为了解决这个问题,我们可以将参数设置为默认值,也就是在定义函数时,直接指定形式参数的默认值,这样,当没有参数传入时,则直接使用定义函数参数时设置的函数参数的默认值。定义带有函数参数的函数的语法格式如下:
def functionname(...,[parameter=defaultvalue]):
[functionbody]
#functionname:函数名称,在调用函数时使用;
#parameter=defaultvalue:可选参数,用于指定向函数中传递参数,并且为该参数设置默认值为defaultvalue;
#functionbody:可选参数,用于指定函数体,即该参数被调用后,要执行的功能代码。
谢谢!