This thread was originally published by Stephen Gruppetta
In this post, I'll look at aspects of functions which can be tricky for those who know basics and want to move to next level Let's start with the unexciting but important—terms.
``` def greet_person(person): print(f"Hello {person}! How are you doing today?")
greet_person("Ishaan") greet_person("Elizabeth")
You define the function when you use the `def` keyword The first line of the definition is the function signature and the code after the colon is the code you want the function to perform. However, this code does not run when you define a function For this, we need to call the function.
You call a function when you use it You're calling a function when you write its name followed by parenthesis (the round brackets). The code in the function definition will run when you call a function. In the example above, you're calling the function twice on the last two lines of the code.
A parameteris the name you choose for information that's needed by the function. You add parameters inside the brackets in the function signature which is the line which includes `def`
In this example, the parameter is `person` This is the name of the "storage box" which is ready to hold any information you send into the function However, when you define the function, this "box" is still empty.
An argument is the actual information you send to a function when you call it You called the function twice in the example above The first time you called `greet_person()` you used the argument `"Ishaan"` and the second time `"Elizabeth"`. When you call the function, the information (the argument) is stored in a variable named `person` inside the function Don't worry too much if you confuse parameters and arguments. Many programmers confuse them, too!
"What's in a name?", one might argue? And there's a point. What matters most is knowing how to use concepts rather than knowing the precise definitions Still, these terms are used everywhere-in documentation, in tutorials, when talking to other programmers.
So, knowing the terminology isimportant. It shouldn't be the first thing someone learns, but eventually, everyone should become familiar with the right terms for the right things
Originally published here.