5.2.3 可选参数和可变数量参数
1.可选参数
函数在定义的时候,有些参数直接设定了默认值,即部分参数不一定需要调用程序输入。当函数被调用时,如果没有传入对应的参数值,则使用函数定义时的默认值。
基本形式:函数名(参数=默认值)。
如定义一个函数,求圆的面积。
以上函数定义时有两个参数,其中形参pi指定了默认值,即pi=3.14。在调用时只传递了一个参数值area(10),则会将参数值10传递给形参r,而形参pi则使用定义时指定的默认值3.14。这个函数调用时也可以传递两个参数,如area(10,3.1415),形参pi将会使用传递的参数值3.1415。
注意:由于函数调用时一般按顺序传递参数,所以可选参数必须定义在非可选参数后面。上例函数area()中带默认值的可选参数pi就必须定义在str参数后面。
2.可变数量参数
在函数定义时,也可以设计可变数量参数,通过在参数前面加星号(*)实现。带有星号的可变数量参数只能出现在参数列表的最后。调用时,这些参数当作元组类型传递到函数中。
定义一个函数,对指定整数以内的数累加求和。
Sum()函数定义了一个可变参数b,调用函数Sum()时,输入数据(6,7)被当作元组传递给b,与n以内的数值之和进行累加后输出。
n=5,累加和为1+2+3+4+5=15。
b=(6,7),与上面的和15累加:15+6+7=28。
程序运行的最终结果为28。
【案例5-4】 绘制新冠病毒,效果如图5-3所示。
图5-3 新冠病毒
案例分析:
从图5-3中可以找到画图的规律,图的基本组成元素是,区别在于圆的半径和直线的长度不同,因此可以将这个基本元素的画法封装在函数中,给函数传递不同的半径值和直线长度值,则可实现新冠病毒的画法。
基本元素的画法是先画圆弧,右转90°,画直线,右转90°,画圆,右转90°,画直线,右转90°。基本元素一共出现了16次,由此可知圆弧的角度为360°/16=22.5°。
实现代码: