Functions are an essential part of the Python programming language.
A function is a block of code which only runs when it is called.
You can pass data, known as parameters, into a function and a function can return data as a result.
Functions are a convenient way to divide your code into useful blocks, allowing us to order
our code, make it more readable, reuse it and save some time.
Also functions are a key way to define interfaces so programmers can share their code.
Functions provide better modularity for your application and a high degree of code reusing.
You can use functions in programming to bundle a set of instructions that you want to use repeatedly or that,
because of their complexity, are better self-contained in a sub-program and called when needed.
That means that a function is a piece of code written to carry out a specified task.
To carry out that specific task, the function might or might not need multiple inputs.
When the task is carried out, the function can or can not return one or more values.
There are three types of functions in Python:
Built-in functions, such as help() to ask for help, min() to get the minimum value, print() to print an object to the terminal.
User-Defined Functions (UDFs), which are functions that users create to help them out
Anonymous functions, which are also called lambda functions because they are not declared with the standard def keyword.