We have used functions is past lessons. Functions have a name and parameters. Some of them return a result, others don’t. We typically call them using
result = name(parameters).
Let’s take a look at some functions, for example
pow(x, y). The print function takes a parameter (or multiple parameters) and returns nothing:
result = print('Hello world')
The pow function has two parameters and returns a result:
result = pow(2, 3)
You can DEFine your own functions using the
def statement. After the def statement, you should specify your functions’ name and in brackets its parameters. Afterwards follows a colon
: and all following lines of code which are indented are part of this function. A final
return statement sends the result back to from where the function was called.
def sum_numbers(a, b): result = a + b return result
You can then call your function as often as you like
Sometimes, you want to save the result of your function in a variable.
c = sum_numbers(4, 5) print(c)
Simplify code using functions#
Assume you have a complicated algorithm which can tell you if a number if odd or even. Let’s put this algorithm in a function and call it later on. For our algorithm, we will use the modulo operator %.
def print_odd_or_even(number): if number % 2 == 0: print(number, "is even") else: print(number, "is odd")
3 is odd
4 is even
10 is even
Thus, instead of writing the same
if-else block again and again, we can just call our custom
You can document what a function does in its so called doc string. The doc string follows right after the functions header and looks like this:
def square(number): ''' Squares a number by multiplying it with itself and returns its result. ''' return number * number
You can then later read the documentation of the function like this:
Squares a number by multiplying it with itself and returns its result.
Also try this if you want to have the docstring shown side-by-side in your notebook:
Signature: square(number) Docstring: Squares a number by multiplying it with itself and returns its result. File: /var/folders/p1/6svzckgd1y5906pfgm71fvmr0000gn/T/ipykernel_11914/1507435947.py Type: function
By the way, you can do this with any function:
import math print(math.sqrt.__doc__)
Return the square root of x.
Return e raised to the power of x.
Write a function that takes two parameters:
number_of_total_points_in_exam and returns a grade from 1 to 5. Students with > 95% of the points get grade 1, above 80% they get grade 2, above 60% grade 3 and above 50% grade 4. Students with less than 50% get grade 5 and have to repeat the exam. Then, call the function for three students who had 15, 25 and 29 points in an exam with 30 total points.