Arvutiteaduse instituut
  1. Esileht
  2. Python koolis
EN
Logi sisse

Python koolis

  • Sissejuhatus
  • Teemad

1. Paigaldamine
2. Kommentaarid
3. Muutujad
4. Andmetüübid
5. Sõned
6. Operaatorid
7. Sisend ja väljund
8. Tingimus
9. Tsükkel
10. Algoritm ja plokkskeem
11. Järjend
12. Sõnastik
13. Funktsioon
14. Failioperatsioonid
15. Moodulid
16. Objektid

  • PyGame
  • ÜLESANDED

13. Funktsioon ehk alamprogramm

Võimalik, et programmis leidub koodilõike, mida tahame programmi kestel kasutada korduvalt: arvutada etteantud andmete põhjal ruumala, väljastada kasutaja andmeid jne. Samuti on suure programmi puhul keeruline jälgida programmi struktuuri. Koodi lühendamiseks ja struktuuri parandamiseks kasutatakse funktsioone e. alamprogramme. Funktsioon on koodiridade plokk, millel on oma nimi.

def funktsioon():
     <käsk>
     <käsk>

Sel viisil defineeritud funktsiooni saab välja kutsuda e. selle alla kuuluvaid käske käivitada korduvalt niimoodi:

funktsioon()

Näiteks

def tekst():
     print("Pikk ekraanile väljastatav lause.")
tekst()
tekst()
tekst()

Ülaltoodud näites kutsutakse funktsiooni tekst() välja kolm korda, seega trükitakse ka lauset kolm korda. Kui funktsioon on defineeritud, võib seda välja kutsuda suvalisest kohast programmi sees.

Argumendid

Sageli on kordamist vajavad operatsioonid küll sarnased, kuid neid tuleb teha erinevate andmetega: kokku liita erinevaid arve, välja trükkida erinevate kasutajate andmeid jne. Sel juhul saame funktsioonile ette anda argumente, mida kasutades ta käske käivitab. Argumendid kirjutatakse komadega eraldatult sulgudesse funktsiooni väljakutsumisel ning nende väärtused võrdsustatakse muutujatega funktsiooni defineerimisel. Saadud muutujaid saab funktsiooni sees kasutada, kuid väljaspool funktsiooni mitte.

def tervita(nimi):
     print("Ole tervitatud, " + nimi)
tervita("Siim")
tervita("Kadri")
def liida(arv1, arv2):
     print("Arvude " + str(arv1) + " ja " + str(arv2) + " summa on " + str(arv1 + arv2))
liida(20, 30)
liida(5, 3)

Tulemuste tagastamine

Toodud näidetes toimus funktsiooni sees andmete väljatrükk. Mõnikord on vaja, et funktsiooni töö tulemusi vajatakse kusagil väljaspool funktsiooni: tulemuse alusel jätkatakse arvutusi vms. Sel juhul tagastatakse funktsiooni töö tulemus käsuga return ning loomulikult võetakse tagastatud tulemus ka funktsiooni käivitades vastu.

def liida(arv1, arv2):
     summa = arv1 + arv2
     return summa
summa1 = liida(20, 30)
print("Kahe esimese arvu summa on " + str(summa1))
summa2 = liida(5, 3)
print("Kahe järgmise arvu summa on " + str(summa2))
kogusumma = liida(summa1, summa2)
print("Arvude kogusumma on " + str(kogusumma))

Toodud programmis kasutatakse funktsiooni liida() kolm korda, viimasel korral kasutatakse argumentidena kahel eelmisel korral saadud tulemusi.

Muutujate väärtuste kehtivuse ulatus e. skoop

Kõikide muutujate väärtused, mida me funktsioonis kasutame, kehtivad ainult funktsiooni sees. Nagu nägime: elleks, et tagastada tulemusi väljapoole funktsiooni, kasutasime käsku "return". Samas on mõnikord sellisel moel väljaspool funktsiooni kehtivate muutujate väärtustamine vaevarikas, seepärast võime funktsiooni algusesse (pärast funktsiooni definitsiooni) kirjutada käsu "global <muutuja_nimi>", näiteks:

global punktisumma

Nii ütleme programmile, et muutuja "punktisumma" pole mitte selle funktsiooni sisene, vaid selles funktsioonis kasutatakse väljaspool funktsiooni deklareeritud muutujat "punktisumma". Nii saab ka funktsiooni sees kasutada seda muutujat, näiteks lugeda või muuta selle väärtust.


Creative Commons litsentsiga Autorile viitamine + Mitteäriline eesmärk 3.0 Eesti (CC BY-NC 3.0 EE) - https://creativecommons.org/licenses/by-nc/3.0/ee/

  • Arvutiteaduse instituut
  • Loodus- ja täppisteaduste valdkond
  • Tartu Ülikool
Tehniliste probleemide või küsimuste korral kirjuta:

Kursuse sisu ja korralduslike küsimustega pöörduge kursuse korraldajate poole.
Õppematerjalide varalised autoriõigused kuuluvad Tartu Ülikoolile. Õppematerjalide kasutamine on lubatud autoriõiguse seaduses ettenähtud teose vaba kasutamise eesmärkidel ja tingimustel. Õppematerjalide kasutamisel on kasutaja kohustatud viitama õppematerjalide autorile.
Õppematerjalide kasutamine muudel eesmärkidel on lubatud ainult Tartu Ülikooli eelneval kirjalikul nõusolekul.
Courses’i keskkonna kasutustingimused