Osa 3

Omat funktiot

Aikaisemmissa osissa on käytetty esimerkiksi funktioita len, print ja input eri tarkoituksiin. Nämä ovat Pythonin sisäänrakennettuja funktioita, mutta voimme myös määritellä omia funktioita.

Funktion määrittely

Oma funktio määritellään avainsanalla def (lyhenne sanasta define). Funktiolle annetaan jokin nimi, jonka jälkeen on alku- ja loppusulku. Tämän jälkeen annetaan lohkossa funktioon kuuluva koodi.

Esimerkiksi seuraava koodi määrittelee funktion viesti:

def viesti():
    print("Tämä on oma funktio!")

Jos yllä oleva ohjelma suoritetaan, se ei näytä tekevän mitään. Tämä johtuu siitä, että funktion sisältämä koodi suoritetaan vasta silloin, kun funktiota kutsutaan.

Funktion kutsuminen tapahtuu funktion nimellä. Esimerkiksi seuraava koodi kutsuu funktiota:

def viesti():
    print("Tämä on oma funktio!")

viesti()
Esimerkkitulostus

Tämä on oma funktio!

Samaa funktiota voidaan määrittelyn jälkeen kutsua useita kertoja.

def viesti():
    print("Tämä on oma funktio!")

viesti()
viesti()
viesti()
Esimerkkitulostus

Tämä on oma funktio! Tämä on oma funktio! Tämä on oma funktio!

Funktion parametri

Usein funktiolla on yksi tai useampi parametri, jolla sen toimintaan voi vaikuttaa. Esimerkiksi Pythonin valmiissa funktioissa print ja input parametrin avulla annetaan näytettävä teksti:

print("Hei!")                     # parametrina merkkijono "Hei!"
nimi = input("Kerro nimesi: ")    # parametrina merkkijono "Kerro nimesi: "
print(nimi)                       # parametrina muuttujan nimi arvo

Voimme määritellä parametreja myös omille funktioillemme. Parametrit määritellään funktion nimen jälkeen olevien sulkujen sisällä:

def tervehdi(kohde):
    print("Hei", kohde)

Jos funktiota kutsutaan kaksi kertaa

tervehdi("Emilia")
tervehdi("maailma!")

tulostaa se kaksi erilaista tervehdystä:

Esimerkkitulostus

Hei Emilia Hei maailma!

Katsotaan funktion määrittelyä vielä tarkemmin:

def tervehdi(kohde):
    print("Hei", kohde)

Määrittelimme ensimmäisellä rivillä, että funktion parametri on nimeltään kohde. Toisella rivillä print-komento käyttää parametrissa kohde olevaa arvoa.

Kun funktiota kutsutaan, saa parametri funktiokutsussa annettavan arvon. Esimerkiksi kun kutsutaan

nimi = "Antti"
tervehdi(nimi)

niin parametrin kohde arvo funktiossa on merkkijono Antti.

Parametrien ja myös funktioiden nimeämistä koskevat samat periaatteet kuin mitä olemme jo aiemmin käsitelleet, eli nimien kannattaa olla kuvaavia ja käytössä ovat ensisijaisesti pienet kirjaimet sekä alaviiva.

Lisää esimerkkejä

Katsotaan vielä pari muuta esimerkkiä parametrien käyttämisestä. Seuraavassa funktiossa parametri on luku:

def nelio(x):
    print("Luvun", x, "neliö on", x * x)

nelio(2)
nelio(5)
Esimerkkitulostus

Luvun 2 neliö on 4 Luvun 5 neliö on 25

Seuraavassa esimerkissä funktion sisällä on ehtorakenne:

def tervehdi(nimi):
    if nimi == "Emilia":
        print("Heippa,", nimi)
    else:
        print("Moikka,", nimi)

tervehdi("Emilia")
tervehdi("Matti")
Esimerkkitulostus

Heippa, Emilia Moikka, Matti

Seuraavassa funktiossa puolestaan on kaksi parametria:

def summa(x, y):
    print("Parametrien summa on ", x + y)

summa(1, 2)
summa(5, 24)
Esimerkkitulostus

Parametrien summa on 3 Parametrien summa on 29

Huomaa, että parametrien nimillä ei ole mitään tekemistä funktion ulkopuolella olevien muuttujien kanssa. Esimerkiksi jos kutsumme äskeistä funktiota

x = 100
y = 30
summa(1, 2)
summa(x + y, 10)

niin tuloksena on:

Esimerkkitulostus

Parametrien summa on 3 Parametrien summa on 140

Ensimmäisessä kutsussa parametrien arvot funktion sisällä ovat x = 1 ja y = 2, ja toisessa kutsussa arvot ovat x = 130 ja y = 10.

Palaamme funktioihin ja parametrien määrittelyyn tarkemmin seuraavan osan alussa.

:
Loading...
:
Loading...

Kirjaudu sisään nähdäksesi tehtävän.

Vastaa lopuksi osion loppukyselyyn:

:
Loading...
:
Loading...

Kirjaudu sisään nähdäksesi tehtävän.