Engineering Computing

Functions

In Python, functions are reusable blocks of code that accept input arguments and return one or more values. As we have seen, a method is a special type of function that is contained within an object. We typically do not refer to methods as “functions,” instead reserving the term for functions that are not methods. A function that computes the square root of the sum of the squares of two arguments can be defined as:

def root_sum_squared(arg1, arg2):
    sum_squared = arg1**2 + arg2**2
    return sum_squared**(1/2)

The syntax requires the block of code following the def line to be indented. A block ends where the indent ends. The indent should, by convention, be 4 space characters. The function ends with a return statement, which begins with the keyword return followed by an expression, the value of which is returned to the caller code. The variable sum_squared is created inside the function, so it is local to the function and cannot be accessed from outside. Calling (using) this function could look like

root_sum_squared(3, 4)

This call returns the value 5.0.

The arguments arg1 and arg2 in the previous example are called positional arguments because they are identified in the function call by their position; that is, 3 is identified as arg1 and 4 is identified as arg2 based on their positions in the argument list. There is another type of argument, called a keyword argument (sometimes called a “named” argument), that can follow positional arguments and have the syntax <key>=<value>. For instance, we could augment the previous function as follows:

def root_sum_squared(arg1, arg2, pre="RSS ="):
    sum_squared = arg1**2 + arg2**2
    rss = sum_squared**(1/2)
    print(pre, rss)
    return rss

The pre positional argument is given a default value of "RSS =", and the function now prints the root sum square with pre prepended. Calling this function with

sum_squared(4, 6)

prints the following to the console:

RSS = 7.211102550927978

Alternatively, we could pass a value to pre with the call

sum_squared(4, 6, pre="Root sum square =")

which prints

Root sum square = 7.211102550927978

Online Resources for Section 1.9

No online resources.