Funktiot
Funktio
Funktio niputtaa joukon lauseita yhdeksi kokonaisuudeksi, jota voidaan kutsua nimeltä aina tarvittaessa. Ohjelman jaetaan usein pienempiin osiin, joita kutsutaan Pythonissa funktioiksi. Muissa ohjelmointikielissä niitä voidaan kutsua aliohjelmiksi, proseduureiksi tai metodeiksi. Funktio täytyy esitellä ennen kuin sitä käytetään.
Esimerkki funktiosta
Alla olevassa esimerkissä pääohjelma (main) kutsuu funktiota laskeALV. (ALV on lyhenne sanoista arvonlisävero).
def laskeALV(hinta):
#Funktio laskee arvonlisäveron annetulle hinnalle ja palauttaa alvin
return 0.24 * hinta
#ohjelma jossa edellä määriteltyä funktiota kutsutaan
luku = 50
#kutsutaan Funktioa laskeALV ja välitetään funktiolle parametrina
alv = laskeALV(luku)
print("Arvonlisävero on", alv)
Funktion paluuarvo
Funktiot voivat palauttaa suorituksen jälkeen kutsuvalla ohjelmalle paluuarvon. Paluuarvo voi olla: * jokin perustietotyyppi, siis esim bool, int, float, str * kokoelmia, olioita yms (ei käsitellä tällä kurssilla). Palautettava arvo (luku, merkkijono tai muu) palautetaan return-määreellä.
def laskeALV(nettohinta):
#alv on 24% verottomasta hinnasta
return (0.24 * nettohinta)
def say_hello(name, language):
if language == "fi":
print("Terve", name)
else:
print("Hello", name)
Funktion parametrit
Funktioille voidaan välittää parametreja. Parametreja voi yksi tai useampia. Parametrien avulla funktiolle välitetään tietoa parametrien arvoilla. Parametreina voi käyttää kaikki tietotyyppejä, olioita, kokoelmia jne. Edellä olevalle laskeALV-funktiolla on yksi parametri ja sitä kutsuttaessa sille välitetään yksi argumentti.
Alla olevassa esimerkissä on funktio toistaNimi, jolla on kaksi parametria, ensimmäinen int-tyyppinen ja toinen string-tyyppinen
def toistaNimi(lkm, nimi):
for x in range(lkm):
print(nimi)
#kutsutaan funktiota ja välitetään sille argumenttina käyttäjän antama nimi
nimi = input("Ole hyvä, anna etunimesi")
toistaNimi(5, nimi)
