In this lesson, you will learn how to write custom functions in Python.
After completing this lesson, you will be able to:
- Explain the structure of a function in Python
- Define an input parameter to a function
- Write custom functions in Python
Write a Function in Python
# this is an example function that adds the value of five to any input parameter # x is the placeholder for the input parameter and will be assigned when the function is called def add_five(x): # add the value of 5 to an input parameter # function can take a single value, single value variable, or numpy array as input # function can not take list or pandas dataframe as input return (x + 5)
There are several parts of a function in
Functions begins with the keyword
def: this keyword initiates the function definition. It is followed by the function name and input parameter in parenthesis
Just like with loops and conditional statements, the colon
: is used to indicate that the definition (i.e. code) of the function is below. Also, note that the code lines below are indented once, just like with loops and conditional statements.
This is the name that you will use when you call the function (e.g.
add_five(x) is a function with the name
add_five. You pass this function the parameter value for
x within parenthesis
(), and it adds the value
x (i.e. the value that has been passed to the function).
An input parameter is what you pass the function as the required information for the function to run. The function will take the value or variable provided as the input parameter and use it to perform some task.
In the example above,
x is actually a placeholder for the variable that will be acted upon in the function (i.e. the variable that will have the value of 5 added to it).
x has not been explicitly defined outside of the function. It does not need to be because it will actually be defined by the user of the function when the function is called (e.g.
This statement returns the value of the code executed in the function, using the syntax
If the function is as simple as the example above, the return statement also contains the code that is being executed in the function to determine the output value. However, you can write more lines of code before the return statement, and then return the final output.
Documentation With Python Comments
Documentation is not required for the function to work. However, good documentation will save you time in the future when you need to use this code again, and it also helps others understand how they can use your function.
In the example above, the documentation has noted that the input parameter can be a single value variable or a
numpy array, but it cannot be a list or
Call a Function in Python
Below is an example call to this function. Again, notice that you do not have to create a variable
x in order to give the function a parameter value.
You can simply give the function a value
3 as the input parameter, and the function will add the value
5 and return the value
# this is an example call to the add_five function using a single value add_five(3)
Notice that you will get an error if you try to print the value of
x an explicit variable? What role does
x play in the function?
# uncomment line to run, as it will result in an error #print(x)
Because the function is well documented, you know that you can also provide an existing
numpy array as the input.
# import necessary package import numpy as np # create numpy array that will be used as input parameter arrayname = np.array([1.8, 0.68]) # this is an example call to the add_five function add_five(arrayname)
array([6.8 , 5.68])
Notice the output that you receive when you call the original variable
Why have the original values not changed? Does the function actually assign new values to the input parameter?
# print data in `arrayname` arrayname
array([1.8 , 0.68])
Why would the function
add_five not be able to take lists or
pandas dataframes as an input? Look carefully at the code that the function executes.
Python skills to:
Write a function to convert an input parameter value from inches to millimeters. Recall that one inch is equal to 25.4 millimeters.
- See the example function
add_five()that adds the value of 5 to the input parameter.
- Begin with the
defkeyword and a clear function name that tells the user what the function does.
- Use a placeholder name for the input parameter that is also clear and tells the user what the function is expecting.
- Because your code is simple, your return statement can contain the code that calculates the output within parenthesis
(), just like
- Be sure to add documentation about the input and output parameters of the function.
- See the example function
Run your function on the value
1.8(i.e. your input parameter).