Python Functions Overview


A function is nothing but a piece of programming code which perform specific task. Once a function is created in you program you can reuse that function number of times that reduces the duplication of our code.
In python functions are of the following two types:
  1. Built-in functions
  2. User-define Functions
Built-in function are functions which are pre-defined in Python like Math Function and String Function. User define functions are the function which are defined by user. 
Defining a Function in Python
  1. def function-name(arguments):    
  2.      ---------    
  3.      ---------  #Body of the Function  
  4.      ---------    
  5.      return Value;   
def is the keyword in python which is used to define the function,
function-name is user defined function name, this name can be anything defined by user,
arguments are list of argument which you want to pass into the argument, and
return returns some value from the function. 
Calling a Function

Above function can be called like the following:
  1. retunValue=function-name(arguments)  
  1. """A Simple Function 
  2. which don't takes any argument and  
  3. don't return any value"""  
  5. def MyFunction():  
  6.     print("Hello, C# Corner :)")  
  7.     return   
  9. #calling "MyFunction" function  
  10. MyFunction()  

Passing parameters to function
  1. """Passing Value to function"""  
  3. def Sum(a,b):  
  4.     return a+b  
  6. result=Sum(5,6)  
  7. print(result)  

Returning Multiple Values from the function

In Python we can return multiple values also. To return multiple values we use comma(,) when we return value.
  1. #Function Returns Multiple Values  
  2. def ReturnMultipleValues():  
  3.     a=8  
  4.     b=9  
  5.     c=10  
  6.     return a,b,c  
  8. i,j,k=ReturnMultipleValues();  
  9. print(i)  
  10. print(j)  
  11. print(k)  

Calling Function With Argument

We can call a function in Python by the following different ways:
  1. Required Arguments
  2. Keyword Arguments
  3. Default Arguments
  4. Variable Length Argument 
Required Argument

When arguments are passed into the function in exact order as function is defined.

  1. def MyFunction(arg):  
  2.     print(arg)  
  3.     return  
  4. MyFunction("Hello C# Corner :)")  

Keyword Argument

When function is called by its parameter name.
  1. def MyFunction(arg1,arg2):  
  2.     print(arg1)  
  3.     print(arg2)  
  4.     return  
  6. MyFunction(arg2="Somani",arg1="Sourabh")  
Default Argument 

Sometimes we can define a function in Python with default argument value, so when the function will be called and if we do not pass the argument, then by default it will take default values.
  1. def MyFunction(a=0,b=0):  
  2.     print(a+b)  
  3.     return  
  5. MyFunction()  
  6. MyFunction(a=5)  
  7. MyFunction(b=6)  
  8. MyFunction(a=10,b=20)  

Variable-Length Arguments

Sometimes we don't know the number of arguments which we will pass into the function. So we can define a function with variable length argument, So the number of arguments may vary according to need.

An asterisk(*) sign is placed before the variable name so argument list may very according to need. 

Example: We want to add n numbers which we will pass to the function.
  1. def Add(*args):  
  2.     sum=0  
  3.     for i in args:  
  4.         sum+=i  
  5.     return sum  
  6. print(Add(5,6,7,8,9,10))  
  7. print(Add(1,2,3,4,5,6,7,8,9,10))