Functions in Python – A Complete Tutorial

Functions in Python featured image

In the beginning, I will just say when you divide your code into, smaller blocks that perform a specific task. You can also call anytime in your code to avoid repetitions of writing code. These are functions. The  Functions in Python programming language are the most important part. I mean not only for python but it is true with other programming languages. If you really want to become a python expert programmer, Function’s hands-on knowledge is compulsory. This article will provide you A-Z information about functions in programming.


There are so many built-in functions provided by Python Interpreter which you must know. These inbuilt functions in python simplify the task for you.  For example print(), abs(), format(),map(), e.t.c. All these built-in functions come as libraries of python. Especially Data Science, Machine Learning, Big Data projects, or any AI project require much code. Always a bigger code may have repetitions.To avoid this repetition, We use functions in python. I think your mind is completely filled with questions in functions. Get your answers in this article-

Can you Imagine Programming without any function?

Let’s have a practical scenario, Suppose you are a data scientist and you need to develop a code that can fetch data from the Stock market for a particular company. You simply wrote the code and achieve the functionality in approximate 200 lines of code without using the function . After some time you realize to enhance the code for two other companies. You have to add 400 extra lines of code.  Here you will face a special challenge that how will you declare the variables. Choosing a different variable name can be difficult for every iteration. On the opposite side, You may use a function that will reduce the lines of code and it will encapsulate your variable as well. You must be thinking I can use a loop to avoid the repetition but remember loop can not encapsulate your variable. These two are completely different.

Functions Definition : ( Academic Readers)

Functions are the set of instructions. You make functions when it is repeatedly required in the code. Its main purpose is to perform a specific task according to instructions written inside the function. There are two main things inside any function.

  1. Parameters 
  2. Return 

Parameters in function are also called as the input of the function. You can have one parameter or more than one or no parameter. In the same way, each function must have to return values. The function can return one or more than one or no values.

Types of Functions in Python

Functions in python are of three types:-

  1. Pre Defined functions
  2. User-defined functions
  3. Anonymous function or Lamda functions
  1. Pre Defined functions

Pre Defined functions are those functions which are already come with python standard libraries. For example print(), abs(), help(), max() are some built-in functions. Below is the attached overview of built-in functions.

Built in Functions in Python

User-Defined Functions

User-defined functions are those functions that are not pre-built. You can create as many user-defined function. These types of functions are helpful when you have performed specific tasks more than once.

Anonymous functions or Lambda functions

If You see the Lambda functions, You will find it has light syntax. You need not use def keyword with them. Actually It has no identifier type Linkage. I mean you need not write data type support with these types of functions.

Key Notes about Function Beginner programmers often got confused between Functions or Methods and Parameters or Arguments. In the next sections, you will know the difference between them. Assuming you have knowledge about class. When you create a class, then inside the class you define functions. These functions are known as Methods. You can call and access this function only when the instance or object of the class is called. Whereas functions outside any class are standalone. Therefore all methods are functions but all functions are not methods.

Difference between Parameters and Arguments

Beginners always confused about the difference between parameters and arguments. Even I was thinking parameters and arguments are the same things. But there is a difference. When you define a function or method, then values inside the bracket are parameters. Arguments are values that are supplied. These values are supplied when you invoke a function.


How to define a function in python:-

Defining a function is an easy task. You have to just remember the following steps to define a function in python.

Step 1 – There is a reserved keyword to declare the function. Use the key def to declare the function and a function name as a suffix.

Step 2 – Each function should have parameters. Add the parameter name inside the parenthesis. After that add colon to end the line.

Step 3- Add statements to the function to execute.

Step 4 – Each function should have a return statement and it is necessary for the function to output something. Without it function will output the error.

What is the pass statement in Python –

Usually when you do not want your Python code to perform something but you just need a  placeholder. In this case, you can use the pass statement.


# Define a function
def Hello(str):

You can see the above code. def used to declare the function. Hello is the name of the function and str is its parameter. print(str) is the statement. At last return is written to indicate that function is over and will return the value.  In the above code we have used only one parameter str. But you can use more than one parameters. You can also edit code and modify it to see the changes in the output. The above code is very basic. You can add loops,nested loops to make it more complex. However, when you try to run the above code , you will not see the output . It is because only function is defined. In the next section, you will know how to call a function in python.

How to call a function in python :-

Now, you have understand how to define a function. You will know how to call a function in python in this section. Calling a function requires only one thing, Function must be pre defined. You can execute function by the function name. See the below example.


#Define a function
def Hello(str):
  return;# Call the function
Hello("Welcome to Data Science Learner")

You can see the above code. We have defined a function and then call the function using the name same as the function name with arguments values. It gives Welcome to Data Science Learner as an output.

What is docstrings and How to add it to Python Function :-

Documentation of every written code is useful for the programmer to read and understand what the functions are doing. In Python we use Docstrings to describes a Function. Doctrings are the descriptions, so that reader can understand what your functions do without reading the whole code.

Docstring are placed after the function declaration. In fact, It is placed between the triple quotation marks “””. The example below has short length of function docstring. But in the real world , its longer. You can find it on a python code of scikit-learn . 

You can also write function docstring as “”” in first line, Dsecriptions in the next line and then “”” in the last line like this.


This is function docstings




# Define a function
def Hello(str):
"""This print passed string into the function"""
# Call the function
Hello("Welcome to Data Science Learner")

Types of Function Arguments in Python

Earlier you have learned the difference between parameters and arguments. When any thing is passed as value to the function or method call, then it is argument. While the Parameter are the arguments inside the brackets () when the function is declare.

There are four types of Function arguments in Python in User Defined Functions.

  1. Default Arguments
  2. Required Arguments
  3. Keyword Arguments
  4. Variable-length Arguments

Default Arguments 

In Most Scenario , You need to write a function which perform some task even all required argument are not provided by user  . In this Scenario we need to define a default value for such argument . Default value is assign using the operator ‘=’ . Look at the following example for more clarification.


# Define 'multiply()' function
def multiply(a,b = 10):
   return a*b;

# Call 'multiply()' function with 'a' and 'b' parameter
print (multiply(a=5,b=7))
# Call 'multiply()' function with only 'a' parameter
print (multiply(a=5))

Required Arguments

You can define more than one parameters in the function. But while calling the function , if you have passed the less number of arguments then you will get an error. Therefore, you must passed the same number of arguments as the parameters in the function definition. These arguments which are passed are known as required arguments. In addition arguments should match the correct position order. If you not provide it in correct positional order there will be syntax error. Below is the example of required arguments.


You can see in the above code, Function have two parameters ‘a‘ and ‘b‘. It print sum of  ‘a’ and ‘b’. Therefore ,according to required arguments definition, you have to pass value of ‘a’ and ‘b ‘during the function call. If you call sum(2) with only one parameter then, you will get the following error.

Keyword Arguments

When you write definition of a function you put parameters each with their unique name. These are also call as keyword arguments. When you call the function with arguments with their name, then the function caller automatically identifies arguments by the parameter name.

Keyword arguments has one main advantage over all the other arguments. You don’t have to check are the position orders of parameters are at correct position or not . In fact Python language automatically assign the argument values by reading the name of the arguments. The below example will clarify you in details.

In the above example, when the functions in python Student(name = “John”,age = 24) and Student( age = 27 , name = “Monika”). Python ia ble to identify the keyword arguments position.

Variable – Length Arguments

Generally you were using one, two or three parameters . But what will happen if we want more parameters during the run-time. Sometimes, you require more arguments during the function call. Thus, you have to define  variable length arguments for the function. There is one thing that differentiate variable length arguments are that it does not need to be named in the function definition. It is different from required and default arguments. You have to use* asterisk to declare variable-length arguments. The following example will clarify any question about the variable-length argument.

In the above example, there are two parameters arg1 and *varnumber. Line 10 call the function with one parameter and line 11 call it with more than one parameter. Loop may require to print the output of variable length arguments.

You have now known the various types of function arguments. In the next section, you will learn the  How to define Anonymous Functions in Python.

How to define Anonymous Functions in Python

Functions that doesn’t have name are called Anonymous Function. Generally Functions have its own name but Anonymous Functions have no name. Other functions are declared using def keyword. Lambda keyword is used to determine Anonymous function. These are the major features of Lambda anonymous function.

  1.  It can take any number of arguments and return only expression.
  2. It can not be directly call to perform task, as lambda requires an expression

The below is an example of Anonymous Function in python.


You can see in the above example, anonymous function has called with arg1 and arg2 as expression. Function has called after the lambda expression has assigned to multiply. In addition, function has no name but you can call it using sum like multiply(10,20) and multiply(10,10).

You should use anonymous function when require it for shot period of time. It is generally created during the run-time. Anonymous function are mostly useful when you are working with map(), reduce(), filter(), e.t.c.

Scope of Variables in Python

When you declare any variable in the program then you can not access that variable in all locations in a program. Accessing a variable will depend upon where you have declared that variable.

You might be thinking of then what is the scope of variable. You can refer scope as sub part of the program. It means scope is part of the program where variable has declared and you have access to that scope only.

Python language have two types of variables

  1. Global Variables
  2. Local Variables

Global Variables

Those variables which are declared outside the function definition are Global Variable. You can access these variables anywhere. It means inside any function, outside, in expression ,e.t.c. In addition, you can use these variable inside more than one function.

Local Variables

Local variables are those various which are declared inside the function. You can access these variables only inside the function. Any output related to local variable will exist only inside the function. Outside the function , output doesn’t relate the local variable.

I think you want more clarification about it. Right!. In fact, The below example , will clear  any queries in your mind.

When you run the code you will get the output for inside function. But when you call the Sum function outside function definition , then the sum variable will give the following output.Outside the Function: <built-in function sum>

Tips for better Functions in Python-

Till now we have done with most of the require syntactical knowledge related to functions . In this section we are not going to more discuss that anymore . In that place , This section covers the code refactoring secretes to  write readable code . Specially there are so much things which you should keep in the mind while writing functions in Python . Lets understand them one by one-

  1. Always use lower case in function name . Apart from this , Please choose a description  name for you function. Its my personal opinion , You usually beginner concentrate on writing the code  which just fulfills the requirement of user . They do not follow the best practices of code generation . They  make things working but This creates problem in code maintenance for  long run .Suppose you wrote some code today where  you do not use descriptive name  and just after three years you need to change something over there to enhance the functionality .You have to read the function description( @docstrings if available ) or complete code inside that . On the other hand , If you write the function name appropriately you can understand the overview by its name only . So please remember this tip for the next time when you write the functions in python .
  2. One function should perform one task at time , Do not overload your function . If you are handling multiple things in single function , You are totally breaking the origin cause of functions in programming .
  3. You may use underscore in function name if you need to merge more than two words to make it self explanatory .
  4. Always avoid using global variable inside function . In case you need to use them , try to pass them as argument in you function.

End Notes

Functions in Python is like heat in human body . You have to know how to define and call the function for better Programming. We have also tried to cover those terms which we use but can not explain properly, For example: The difference between Parameters and Arguments . There are many keywords reserved functions in the python. which You have to just call  only when require. This actually make programming too easy .  In addition, you can also make User Defined Functions( UDF) ,if there is need of customization functions in your code. Python is the fasted growing language. Its community is very large and you will see its huge demand in the field of Data Science, Machine Learning, and Big Data.

Apart from this article , below are the relevant articles to know basics of Python and its applications in other fields.

  1. Introduction to Python .
  2. Python overview Guide for beginner .
  3. How to install python
  4. Why is Python best Machine Learning Language .
  5. Introduction to Machine Learning
  6. Top Machine Learning Libraries in Python.

I hope You have got the answer for your question “ Functions in Python ” . If you think there is some thing that we should include in this article . To make this article more informative and complete with your own thoughts and suggestion  Please comment below .

Data Science Learner Team


Join our list

Subscribe to our mailing list and get interesting stuff and updates to your email inbox.

Thank you for signup. A Confirmation Email has been sent to your Email Address.

Something went wrong.

Meet Sukesh ( Chief Editor ), a passionate and skilled Python programmer with a deep fascination for data science, NumPy, and Pandas. His journey in the world of coding began as a curious explorer and has evolved into a seasoned data enthusiast.
Thank you For sharing.We appreciate your support. Don't Forget to LIKE and FOLLOW our SITE to keep UPDATED with Data Science Learner