Functions
Batteries included
The Python documentation includes an excellent tour of the standard library.
This tutorial has made use of several built-in Python functions already,
including
type()
,
set()
,
len()
,
and
range()
.
positional arguments
The simplest form of a function call takes one or more positional arguments.
For example, the
sorted()
function can be called with a single positional argument
a = [ 3, 1, 5, 4, 2]
sorted(a)
This function will return a sorted version of the input list [ 1, 2, 3, 4, 5 ]
.
keyword arguments
If you read through the documentation for the
sorted()
function, you'll see that it can accept additional keyword arguments
def sorted(iterable, key=None, reverse=False)
These arguments are optional since they've been defined with the default values
None
and False
. You can override these defaults by referencing the argument
by keyword. For example, you can pass reverse=True
to reverse the sort order
sorted(a, reverse=True)
Defining a function
Functions are defined using the
def
keyword, followed by the name of the function, followed by a comma separated
list of arguments within parentheses ()
def my_function(a, b, c)
This is known as a function signature.
Implementing a function
The function's implementation should exist within an indented block directly
below the function signature. You must also append a colon :
to the end of
the function signature
def function(a, b, c):
print('a is', a)
print('b is', b)
print('c is', c)
Now you can invoke this function like any other function from the standard libary
function(1, 2, 3)
This will print the following to the console
a is 1
b is 2
c is 3
defining keyword arguments
Positional arguments are always declared first in a function signature. These
arguments are required to invoke the function. If you'd like to define any
optional arguments, those must be declared after the positional arguments
using the keyword=default
syntax
def function(a, b=8, c=16):
print('a is', a)
print('b is', b)
print('c is', c)
Given the function definition above, a
is required, b
is optional (with a
default value 8
), and c
is optional (with a default value 16
). When
calling this function, if you wish to override any of these optional keyword
arguments, you can refer to them by keyword
function(1, c=3)
This will print the following text to the console
a is 1
b is 8
c is 3
Returning values
Often times you will want your function to manipulate some input data and
return a result. This is done using a return
statement
def function(a, b, c):
return (a + b) / c
If your function has a return value, you can store that value within a variable
using the assignment operator =
result = function(1, 2, 3)