Python-函数-可变长度参数
时间:2020-02-23 14:42:44 来源:igfitidea点击:
在本教程中,我们将学习Python中带有可变长度参数的函数。
在" Python-函数"教程中,我们了解了函数以及进行函数调用时如何将值传递给函数。
在下面的Python程序中,我们调用一个函数并传递两个整数值,然后它返回总和。
# func def sum(x, y): return x + y result = sum(10, 20) print(result) # 30
因此,上面的代码将输出30作为输出。
现在,假设我们想创建一个可以使用任意数量参数(例如2、3、4 ...)的sum函数。
上面的sum
函数的问题是我们只能传递两个参数。
Python使我们能够创建可以接受多个参数的函数。
因此,让我们创建多参数函数。
创建具有可变长度参数的函数
以下是创建可以采用可变长度参数的函数的语法。
def func(*args): # # body of the function #
其中,func
是函数的名称,* args
具有可变长度的参数。
传递多个参数
在下面的Python程序中,我们将重新创建sum
函数,但是这次我们将其修改为采用多个参数并打印它们。
# func def sum(*args): print(type(args)) print(args) sum(10, 20) sum(10, 20, 30) sum(10, 20, 30, 40)
如果运行上面的代码,我们将获得以下输出。
<class 'tuple'> (10, 20) <class 'tuple'> (10, 20, 30) <class 'tuple'> (10, 20, 30, 40
因此,我们可以看到args变量的类型为tuple,我们还可以打印所有作为元组传递给函数的值。
访问多个参数
由于传递给函数的多个参数是元组,因此我们可以使用for循环访问它们。
在下面的Python程序中,我们将输出单个参数。
# func def sum(*args): for arg in args: print(arg) print('sum(10, 20)') sum(10, 20) print('sum(10, 20, 30)') sum(10, 20, 30) print('sum(10, 20, 30, 40)') sum(10, 20, 30, 40)
上面的代码将为我们提供以下输出。
sum(10, 20) 10 20 sum(10, 20, 30) 10 20 30 sum(10, 20, 30, 40) 10 20 30 40
因此,既然我们已经能够访问传递给函数的单个参数,让我们继续进行,并修改我们正在努力的" sum"函数,以向我们返回参数的总和。
多参数求和函数
# func def sum(*args): result = 0 for arg in args: result = result + arg return result print(sum(10, 20)) # 30 print(sum(10, 20, 30)) # 60 print(sum(10, 20, 30, 40)) # 100
让我们向sum函数添加一些检查,以便仅添加数字参数。
# func def sum(*args): result = 0 for arg in args: if type(arg) in (int, float): result = result + arg return result print(sum(10, 20.10, "hello")) # 30.1