Python: An introduction to functions, part 1

A function is a named block of code that is used to perform computations. Python provides many in-built functions such as print() and zip(), but functions can also be created by users.

Why create functions? Functions provide a way to package code so it is easy to reuse when the same action needs to be performed repeatedly. This means there is only one copy of code in one place at any given time, and data can be analysed more efficiently in a way that is reproducible.

How functions operate takes a while to get used to, so we shall start with some simple functions to see how they work. Let’s start with the classic example of defining a function to convert temperatures from Fahrenheit to Kelvin:

def fahr_to_kelvin(temp):
    """Convert temperature in Fahrenheit to Kelvin """
    return ((temp - 32) * (5/9)) + 273.15

Some points on writing functions in Python:

  • A function block begins with def, then the function name, parentheses () and a colon :
  • Variables to be passed to the function as inputs are placed in the parentheses
  • Any code belonging to the function is indented by 4 spaces
  • The first line(s) after the beginning of a function block enclosed by triple quotes """ """ is the documentation string (docstring) of the function. Information on what the function computes is written here
  • The return statement is used to pass information from the function as outputs back to the bit of code that called the function. (Not all functions need return statements or input variables in parentheses)

Python interprets the code above as: the function fahr_to_kelvin() is defined to take a value (known as temp in the function), perform a mathematical computation on that value, and return the new value. We can use the print() function to call the temperature function:

print('freezing point of water in Kelvin:', fahr_to_kelvin(32))

which produces the following output:

freezing point of water in Kelvin: 273.15

Python interprets the print statement this way: first, the text freezing point of water in Kelvin is printed, then Python calls the function fahr_to_kelvin() defined earlier, inputs the value 32 to the function, performs the computation and returns the new value 273.15 back so it is printed.

Since we have converted temperature from Fahrenheit to Kelvin, we can also convert temperature from Kelvin to Celsius:

def kelvin_to_celsius(temp_k):
    """Convert temperature in Kelvin to Celsius"""
    return temp_k - 273.15

and combine both these functions in a single function to convert Fahrenheit to Celsius directly:

def fahr_to_celsius(temp_f):
    """Convert temperature in Fahrenheit to Celsius"""
    temp_k = fahr_to_kelvin(temp_f)
    temp_c = kelvin_to_celsius(temp_k)
    return temp_c

print('freezing point of water in Celsius:', fahr_to_celsius(32.0))

which prints:

freezing point of water in Celsius: 0.0

Summary

We wrote some simple functions to compute temperature values from one scale to another, and wrote a function to call other functions. In the next step we will expand on the idea that a function only works with variables provided as input values, or variables created inside the function.

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s