...
Pythonissa
...
voi
...
-
...
niinkuin
...
useimmissa
...
ohjelmointikielissä
...
-
...
määrittää
...
omia
...
funktioita.
...
Funktiot
...
ovat
...
toiselta
...
nimeltään
...
aliohjelmia
...
ja
...
tämän
...
nimen
...
mukaisesti
...
ne
...
ovat
...
eräänlaisia
...
pääohjelman
...
(tai
...
pääfunktion)
...
sisällä
...
ajettavia
...
pikkuohjelmia,
...
jotka
...
suorittavat
...
jonkun
...
oman
...
tehtävän.
...
Ohjelman
...
jakaminen
...
näin
...
pienempiin
...
suoritettaviin
...
osiin
...
helpottaa
...
ohjelmointia
...
monella
...
tapaa.
...
Ensinnäkin,
...
jos
...
ohjelmassa
...
tarvitan
...
samaa
...
toimintoa
...
tai
...
operaatiota
...
monessa
...
kohtaa,
...
on
...
yksinkertaista
...
tehdä
...
funktio
...
toimintoa
...
varten
...
ja
...
kutsua
...
sitä
...
aina
...
kun
...
tarvitaan
...
sen
...
sijaan,
...
että
...
kirjoittaisi
...
saman
...
koodin
...
useaan
...
paikkaan
...
ohjelmaa.
...
Ja
...
jos
...
toimintoa
...
joutuu
...
jostain
...
syystä
...
muuttamaan,
...
muutos
...
tarvitsee
...
tehdä
...
vain
...
yhteen
...
paikkaan
...
kun
...
käyttää
...
funktioita.
...
Lisäksi,
...
kun
...
tekee
...
yleishyödyllisiä
...
funktioita
...
ja
...
kirjoittaa
...
ne
...
omaan
...
moduuliin,
...
niin
...
ne
...
saadaan
...
helposti
...
käyttöön
...
toisessakin
...
ohjelmassa
...
moduulin
...
lataamalla.
...
Tätä
...
ominaisuutta
...
ollaankin
...
hyödynnetty
...
tähän
...
asti
...
käyttämällä
...
mm.
...
math
...
moduulin
...
funktioita.
Pythonissa funktion luominen onnistuu avainsanalla def, jota seuraa funktion nimi ja sulkumerkit - rivi päättyy kaksoispisteeseen. Tämän jälkeen tulee lohko, joka sisältää koodin, jonka funktio suorittaa.
Tässä luodaan yksinkertainen funktio, jossa tulostetaan merkkijono. Funktiota kutsutaan pari kertaa ohjelman aikana.
Code Block |
---|
Pythonissa funktion luominen onnistuu avainsanalla def, jota seuraa funktion nimi ja sulkumerkit - rivi päättyy kaksoispisteeseen. Tämän jälkeen tulee lohko, joka sisältää koodin, jonka funktio suorittaa. Tässä luodaan yksinkertainen funktio, jossa tulostetaan merkkijono. Funktiota kutsutaan pari kertaa ohjelman aikana. {code} def Message(): print("Tulostus itse tehdystä funktiosta.") print("Funktio luotiin juuri.") Message() print("Funktiota kutsuttiin juuri... vielä uudestaan.") Message() input("Paina Enter näppäintä lopettaaksesi...") {code} |
Samoinkuin
...
moduuleihin,
...
funktioille
...
voi
...
tehdä
...
dokumentaatio
...
merkkijonon.
...
Sen
...
saa
...
näkyviin
...
samalla
...
tapaa
...
eli
...
_
...
doc
...
_
...
muuttujan
...
kautta
...
käyttämällä
...
pisteoperaattoria
...
funktion
...
nimeen
...
(ilman
...
sulkeita).
...
Funktion
...
dokumentaatio
...
tulee
...
myös
...
näkyviin
...
-
...
pienessä
...
keltaisessa
...
laatikossa
...
-
...
kirjoitettaessa
...
ensimmäisen
...
sulkeen
...
funktion
...
nimen
...
jälkeen.
...
Tämä
...
ei
...
aina
...
näy
...
IDLE;n
...
koodieditorissa,
...
mutta
...
interaktiivisessa
...
ohjelmoinnissa
...
kylläkin
...
-
...
niinkuin
...
sisäänrakennettujen
...
funktioiden
...
tapauksessa
...
on
...
näkynyt.
Kokeillaan määrittää funktio interaktiivisessa ohjelmoinnissa. Interaktiivinen ohjelmointi hyväksyy usean rivin funktion määrityksen kaltaisissa sisennetyissä koodirakenteissa - tässä lohko loppuu tyhjään riviin. Kirjoita seuraava funktio ja huomaa dokumentaation ilmestyminen sulkumerkkiä lisätessä - samoin funktiota print kirjoittaessa näkyy sen dokumentaatio.
Code Block |
---|
Kokeillaan määrittää funktio interaktiivisessa ohjelmoinnissa. Interaktiivinen ohjelmointi hyväksyy usean rivin funktion määrityksen kaltaisissa sisennetyissä koodirakenteissa - tässä lohko loppuu tyhjään riviin. Kirjoita seuraava funktio ja huomaa dokumentaation ilmestyminen sulkumerkkiä lisätessä - samoin funktiota print kirjoittaessa näkyy sen dokumentaatio. {code} >>> def Documentation(): """Funktion dokumentaatio...""" print(4 * 3) >>> Documentation() 12 >>> {code} |
Pythonin
...
funktion
...
määritämisestä
...
kannattaa
...
huomata
...
myös
...
se,
...
että
...
koska
...
Python
...
on
...
tulkattava
...
kieli
...
funktiot
...
luodaan
...
ohjelman
...
ajon
...
aikana
...
-
...
joissain
...
muissa
...
kielissä
...
tämä
...
tapahtuu
...
ohjelmaa
...
käännettäessä.
...
Tämän
...
takia
...
funktion
...
määrittelyä
...
voi
...
sisällyttää
...
esimerkiksi
...
valinta
...
rakenteisiin,
...
jolloin
...
ajon
...
aikana
...
ohjelmassa
...
voidaan
...
päättää
...
miten
...
jokin
...
funktio
...
luodaan.
...
Tämä on joskus hyödyllinen ominaisuus, koska aina ohjelmaa kirjoitettaessa ei voi olla varma mihin laitteistoon ja käyttöjärjestelmään ohjelma joutuu. Vaikka Python onkin varsin alusta riippumaton, joskus jotkin asiat täytyy tehdä eri tavalla.