Passing multiple arguments to function in Python.
Python pass multiple arguments: 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.
- Python Data Persistence – Structured Python
- Python Program to Break a List into Chunks of Size N
- how to call a function in python Guide
Defining a function that can accept variable length arguments :
Python multiple 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]