![Python 3.7从入门到精通(视频教学版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/212/31476212/b_31476212.jpg)
6.6 形参和实参
函数的参数分为形参和实参两种。形参出现在函数定义中,在整个函数体内都可以使用,离开该函数则不能使用。实参在调用函数时传入。
1. 形参与实参的概念
形式参数:在函数定义中出现的参数,可以看作是一个占位符,它没有数据,只能等到函数被调用时接收传递进来的数据,所以称为形式参数,简称形参。
实际参数:函数被调用时给出的参数,包含实实在在的数据,会被函数内部的代码使用,所以称为实际参数,简称实参。
2. 参数的功能
形参和实参的功能是数据传送,发生函数调用时,实参的值会传送给形参。
3. 形参和实参的特点
(1)形参变量只有在函数被调用时才会分配内存,调用结束后立刻释放内存,所以形参变量只有在函数内部有效,不能在函数外部使用。
(2)实参可以是常量、变量、表达式、函数等,无论实参是何种类型的数据,在进行函数调用时,都必须有确定的值,以便把这些值传送给形参,所以应该提前用赋值、输入等办法使实参获得确定值。
(3)实参和形参在数量上、类型上、顺序上必须严格一致,否则会发生“类型不匹配”的错误。
注意 函数调用中发生的数据传送是单向的,即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。因此在函数调用过程中,形参值发生改变时,实参的值不会承受之变化。
【例6.4】形参和实参的应用(源代码\ch06\6.4.py)。
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P133_57421.jpg?sign=1738867213-fqLd3ufLrcTWiDppyvwXDYiqAxmKGzQZ-0-251e4db4016be6a3e9fe47ebc7b21014)
保存并运行程序,结果如图6-29所示。
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P133_12883.jpg?sign=1738867213-hbxWf7qLOEiq0ftNg90sdOT2LABOIBKy-0-988c2f7b1c88eae5aacba7cece8e9820)
图6-29 运行结果
注意 在定义函数时,函数的参数就是形参,形参即形式上的参数,它代表参数,但是不知道具体代表的是什么参数。实参就是调用函数时的参数,即具体的、已经知道的参数。
内置函数的组合规则,在用户自定义函数上也同样可用。例如,对自定义的gg( name,price )函数可以使用任何表达式作为实参。
修改【例6.4】中调用函数的代码如下:
gg("冰箱" *4, 4600)
保存并运行程序,结果如图6-30所示。可以用字符串的乘法表达式作为实参。作为实参的表达式,会在函数调用之前执行,因此在上面的例子中,表达式"冰箱"*4只执行一次。
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P133_12901.jpg?sign=1738867213-5tTPipBFUreibxSLiPusAW1skMeMiE4h-0-96e071349c7c5e22a6637984206f3ec6)
图6-30 运行结果
变量也可以作为实参,例如:
aa="冰箱" gg(aa, 4600)
由此可见,实参的名称和函数定义里的名称没有关系。