DEV Community

Chiranjit Karmakar
Chiranjit Karmakar

Posted on

Eureka! The Ultimate Beginner’s Guide to Understanding Functions in Programming

In programming, a function is a piece of code that performs a specific task. It's like a recipe in a cookbook - it tells you how to do something.

Every function has an input and an output. The input to a function is the information that it needs to do its job. This information is passed to the function when it is called.

The output of a function is the result of the task that it performs. When the function is finished running, it produces an output, which is usually a value of some kind.

For example, consider a function that calculates the area of a rectangle. The input to this function would be the width and height of the rectangle. The output would be the area of the rectangle.

Here's an example of how a function might be defined in code:

Python:

def calculate_area(width, height):
  area = width * height
  return area
Enter fullscreen mode Exit fullscreen mode

JavaScript:

function calculate_area(width, height){
 let  area = width * height;
  return area;
}
Enter fullscreen mode Exit fullscreen mode

In this example, the function is called calculate_area, and it takes two input values: width and height. When the functionis called, it calculates the areaof the rectangle by multiplying the widthand heighttogether. The result is returned as the outputof the function.

Did I confuse you? 😕

okay! Let me explain again...

In a function definition, the names that you give to the input values are called parameters. For example, in the function definition def calculate_area(width, height):, widthand heightare the parameters.

When you call a function, you pass it some values, which are called arguments. For example, if you call the calculate_area function like this:

area = calculate_area(5, 10)
Enter fullscreen mode Exit fullscreen mode

In this case, the values 5 and 10 are the arguments. They are the inputto the function, and they are passed to the function in place of the parameters widthand height.

So to summarize:

Parametersare the names that you give to the input values in a function definition.

Arguments are the actual values that are passed to a functionwhen it is called.

Still confused! 😕 Don't worry! Let's take a real-life example of a machine.

Imagine a machine that makes lemonade🍹. This machine has a specific task: it takes some ingredients (water💧, sugar🥄, and lemons🍋) and produces a finished product (lemonade🍹).

The input to the machine is the ingredients (water, sugar, and lemons). These are like the arguments that are passed to a function when it is called.

The output of the machine is the lemonade. This is like the return value of a function.

The machine has a set of instructions that tell it how to make the lemonade. These instructions are like the code inside a function. The instructions tell the machine what to do with the ingredients to produce the final product.

The machine also has a set of buttons and controls that you can use to operate it. These controls are like the parameters of a function. They are the names that you give to the input values in the function definition.

I hope this analogy helps to make functions in programming more concrete!

That's great!👍 Yes, I understand.😄 What if a machine malfunctions or a function does not return anything?

In programming, if a function doesn't return a value, it is said to return None.

None is a special value in Python that represents the absence of a value or a null value. It is an object of its own data type, called NoneType.

If a function is supposed to return a value but doesn't, it will implicitly return None. For example, consider the following function:

Python:

def calculate_area(width, height):
  area = width * height
Enter fullscreen mode Exit fullscreen mode

This function calculates the area of a rectangle, but it doesn't have a return statement. As a result, it will implicitly return None.

Here's an example of how you might call this function and print the result:

area = calculate_area(5, 10)
print(area)  # prints "None"
Enter fullscreen mode Exit fullscreen mode

On the other hand, if a function is not supposed to return a value, you can use the void return type to indicate this. In Python, you can use the pass statement to create a function with a void return type. For example:

def print_hello():
  print("Hello!")
  pass
Enter fullscreen mode Exit fullscreen mode

This function doesn't return a value, so it has a void return type. When you call it, it will simply print the message "Hello!" but not return anything.

I hope this helps you to understand!

Okay! Let's have a real-life example

Here's an analogy for the None value in Python:

Imagine a vending machine that dispenses snacks. Sometimes, the vending machine might be out of a particular snack that you want. In this case, the vending machine wouldn't be able to give you the snack that you requested.

In this situation, you could say that the vending machine "returned" None. It didn't return a snack (which would be the expected output), but rather it returned the absence of a snack.

In a similar way, a function in Python that returns None is indicating that it didn't produce an output value. It didn't return a specific result, but rather it returned the absence of a result.

I hope this analogy helps to make the concept of None more concrete!

In summary, I hope you now have a better understanding of what a function is and how it works. Keep coding. 👨‍💻

Top comments (0)