Python: Funktiot
Oma funktio määritellään Pythonissa
kirjoittamalla funktion nimen eteen def.
Funktion koodi tulee tämän alle lohkoon (muista kaksoispiste ja sisennys!). Funktion palauttaa halutun arvon komennolla return
def f(x):
return x**2 + 1
print(f(1)) # tulostaa 2
print(f(3)) # tulostaa 10Alla määritellään funktio \(f(x)=x^2+1\)
Funktiolla voi olla useampi kuin yksi parametri
(matematiikan kielellä "muuttuja").
Alla oleva funktio laskee pisteen (x, y) etäisyyden neliön origosta.
def etaisyyden_nelio(x,y):
return x**2 + y**2
print(etaisyyden_nelio(3,4)) # tulostaa 25Huom. ohjelmoidessa kannattaa nimetä kuvaavasti. Funktionkaan nimen ei tarvitse olla yksikirjaiminen.
Toisin kuin matematiikan funktiot, Pythonin funktiot eivät välttämättä tarvitse parametria tai edes palautusarvoa.
def moikkaa():
print("Moikkuli!")
moikkaa() # tulostaa Moikkuli!Funktio voi myös kutsua itseään rekursiivisesti
import time
def lahtolaskenta(aloitus):
print(aloitus)
if aloitus > 0:
time.sleep(1) # odota yksi sekunti
lahtolaskenta(aloitus-1)
lahtolaskenta(3) # Tulostaa 3, 2, 1, 0Alla oleva funktio tekee lähtölaskennan luvusta aloitus alaspäin nollaan asti.
Huom! Pythonissa funktiot eivät oletuksena pääse käsiksi lohkonsa ulkopuolella määriteltyihin muuttujiin. Jos funktion sisällä halutaan muuttaa jotain funktion ulkopuolella määriteltyä muuttujaa, täytyy funktion sisällä sanoa global muuttujan_nimi. Muuten Python ei tajua, että tarkoitus on käyttää ulkopuolella määriteltyä, kaikkialle näkyvää globaalia muuttujaa.
laskuri = 0
def kasvata():
global laskuri
laskuri += 1
kasvata()
print(laskuri) # tulostaa 1
kasvata()
print(laskuri) # tulostaa 210 Python: Funktiot
By Timo Pelkola
10 Python: Funktiot
- 284