Passing multiple arguments to function in Python.
In this article we will discuss how we can pass multiple arguments to function using *args in Python.
Let’s say if we want to calculate average of four numbers by a function e.g avg(n1,n2,n3,n4) then we can calculate average of any four numbers by passing some numbers arguments.
Like
# Program :
def avg(n1,n2,n3,n4):
# function to calculate average of 4 numbers
return (n1+n2+n3+n4)/4
average = avg(10,20,30,40)
print(average)Output : 25.0
But what if we want to calculate average of 10 numbers then we can’t take the above function. Here, in this article we shall define a function in python which can accepts any number of arguments. So, let’s start the topic to know how we can achieve this.
Defining a function that can accept variable length arguments :
We can give any number of arguments in function by prefixing function with symbol ‘*‘.
# Program :
def calcAvg(*args):
'''Accepts variable length arguments and calculate average of n numbers'''
# to get the count of total arguments passed
argNums = len(args)
if argNums > 0 :
sum_Nums = 0
# to calculate average from arguments passed
for ele in args :
sum_Nums += ele
return sum_Nums / argNums
print(sum_Nums)
else:
return
if __name__ == '__main__':
avg_Num = calcAvg(10,20,30,40,50)
print("Average is " , avg_Num)
Output : Average is 30.0
Important points about *args :
Positioning of parameter *args :
Along with *args we can also add other parameters. But it should be make sure that *args should be after formal arguments.
Let’s see the representation of that.
# Program :
def publishError(startPar, endPar, *args):
# Accepts variable length arguments and publish error
print(startPar)
for el in args :
print("Error : " , el)
print(endPar)
publishError("[Begin]" , "[Ends]" , "Unknown error")
Output : [Begin] Error : Unknown error [Ends]
Variable length arguments can be of any type :
In *arg we can not only pass variable number of arguments, but also it can be of any data type.
# Programs :
def publishError(startPar, endPar, *args):
# Accepts variable length arguments and publish error
print(startPar)
for el in args :
print("TypeError : " , el)
print(endPar)
publishError("[Begin]" , "[Ends]" , [10, 6.5, 8], ('Holla','Hello'), "")
Output :
[Begin]
TypeError : [10, 6.5, 8]
TypeError : ('Holla', 'Hello')
TypeError :
[Ends]