You may recall that the formula for the area of a triangle with height h and base length b is the following:

A = 0.5 * b * h


This might be a relatively simple formula to remember, but let’s suppose you have to compute a more complex formula. Then suppose you have to compute this formula over and over again for many inputs. Suddenly, it becomes more of a hassle to keep copying and pasting the same formula over and over again in your code. Enter functions:

def area(b, h):
return 0.5 * b * h


A function allows you to encapsulate Python code that you can execute over and over again. You create a function by using the keyword def followed by the function name (in this case, area) followed by parentheses, which contain a comma-delimited list of parameters (i.e. variables available for use in the Python code contained in the function).

In this case, we have two parameters: b and h. The function then outputs the triangle area as defined above. Note that in order to output our result, we must use the return keyword. If we do not use it, the function will return a special value called None.

Finally, an important detail to note is that any Python code that we are encapsulating in this function must have at least one tab preceding each line. Otherwise, Python will not recognize the code as part of the function and will not execute if you try to call it.

Here is our new function area in action:

print(area(1, 2))


To execute a function (or call it), simply write out the function name followed by parentheses, between which you pass in a comma-delimited set of values for each of the parameters of the function. This call will output:

1


Note that function names are variables, so in general, be sure not to assign variable names that are already assigned to functions!

Given that function names are also variables, as was illustrated in the previous lesson, using function names are more robust to typos compared to typing out the same Python code over and over again.

Finally, it should be noted that although this is the first time we are discussing functions, it is not the first time we have used them. print itself is a function!

Let’s now practice using functions in Python:

• Create a function that sums two numbers together. What parameters does your function need to accept? What operation do you need to perform with those parameters? What result do you need to output at the end? (solution)

• How would you modify your function from the previous question to sum four numbers instead of just two? (solution)

If you feel comfortable with these questions, feel free to move on to Lesson 5!