---
# System prepended metadata

title: 'Python: Functions'

---

# Python: Functions

([home](https://github.com/alexhkurz/introduction-to-programming/blob/master/README.md) ... [previous](https://hackmd.io/@alexhkurz/Bk1byMf2L) ... [next](https://hackmd.io/@alexhkurz/SJN2udq3I))


In the previous session, we tested the code below for different values of `n`.

    if n % 2 == 0:
        print(n,'is even')
    elif n % 2 == 1:
        print(n,'is odd')
    else:
        print(n, 'is not an integer')
        
This was quite tedious as we replaced by hand the name `n` by different numbers. 

Everything that is boring and tedious in programming should be automatized.

Do it once by hand. Do it a second time by copy-paste. The third time write a program doing it for you. 

One great way of not having to copy-paste code are functions.

So instead of replacing the name `n` by hand we now treat it as a variable and use it to define a function that we can call and reuse instead of changing the code by hand each time.

    def parity(n):
        if n % 2 == 0:
            print(n,'is even')
        elif n % 2 == 1:
            print(n,'is odd')
        else:
            print(n, 'is not an integer')
           
The function `parity` checks whether a number is even or odd.
    
Paste the code above into the Python REPL. Then call the function `parity` with various arguments such as

    parity(2)
    parity(3)
    parity(2.5)
    ...
    
Instead of working with the REPL, you can also download the code [`parity.pl`](https://github.com/alexhkurz/introduction-to-numbers/blob/master/src/parity.pl) and run with different values of `n`. Notice that thanks to having a function, you need to change the value of `n` in one place only.

**Homework/Activity:**
- Write a function `hello()` that prints `Hello, here is Python`.
- Implement the mathematical function $f(x)=x^2+2x+1$ in Python. Use the Python function to compute $f(-2)$, $f(-1)$ and $f(0)$. 
-  Invent some of your own functions.



    



