Funkcije — parametri i povratne vrednosti
U prethodnoj lekciji naučio si kako da napišeš i pozoveš funkciju.
Sada idemo korak dalje: naučićemo kako funkcije mogu da primaju podatke
(parametre) i da vrate rezultat pomoću ključne reči return.
Ovo je veoma važno jer nam omogućava da istu funkciju koristimo sa različitim vrednostima, bez pisanja novog koda.
1. Šta su parametri?
Parametri su promenljive koje funkcija dobija kada je pozovemo. Možeš da ih zamisliš kao ulazna vrata kroz koja podaci ulaze u funkciju.
Kada pozovemo funkciju, prosleđujemo joj argumente — to su konkretne vrednosti koje ulaze u parametre.
2. Primer: sabiranje sa parametrima
# saberi.py
def saberi(a, b):
return a + b
rezultat = saberi(3, 5)
print("3 + 5 =", rezultat)
# U Thonny-ju probaj i druge vrednosti:
# saberi(10, 20)
Kako ovaj kod radi?
aibsu parametri funkcije- 3 i 5 su argumenti koje prosleđujemo funkciji
returnvraća rezultat poziva funkcije- Vraćena vrednost se smešta u promenljivu
rezultat
3. Šta znači return?
Ključna reč return:
- vraća vrednost iz funkcije
- prekida izvršavanje funkcije
- omogućava da se rezultat koristi dalje u programu
Bez return, funkcija samo izvršava kod, ali ne vraća rezultat.
4. Funkcija sa jednim parametrom
def kvadrat(x):
return x * x
print(kvadrat(4)) # 16
print(kvadrat(10)) # 100
5. Funkcija bez parametara
def poruka():
return "Zdravo iz funkcije!"
print(poruka())
Razlika između funkcija sa i bez povratne vrednosti
U Pythonu postoje dve česte vrste funkcija:
- funkcije koje ne vraćaju vrednost
- funkcije koje vraćaju vrednost pomoću
return
1. Funkcija bez povratne vrednosti
Ova funkcija samo izvršava neku radnju (najčešće ispis na ekran), ali ne možeš da sačuvaš njen rezultat.
def pozdrav():
print("Zdravo!")
pozdrav()
Ova funkcija:
- ne koristi
return - ne može se smestiti u promenljivu
x = pozdrav() # x će biti None
2. Funkcija sa povratnom vrednošću
Ova funkcija računa nešto i vraća rezultat, koji možeš koristiti dalje u programu.
def saberi(a, b):
return a + b
rezultat = saberi(2, 3)
print(rezultat)
Ova funkcija:
- koristi
return - vraća vrednost
- može se sačuvati u promenljivu
Uporedni pregled
| Bez return | Sa return |
|---|---|
| Ispisuje poruku | Računa i vraća vrednost |
| Koristi print() | Koristi return |
| Ne može u promenljivu | Može u promenljivu |
Zapamti
Ako želiš samo da se nešto prikaže → koristi print()
Ako želiš da se nešto izračuna i koristi dalje → koristi return
6. Mini zadaci
Zadatak 1 (osnovni)
Napiši funkciju pozdrav(ime) koja vraća poruku:
Zdravo, ime!
Zadatak 2 (srednji)
Napiši funkciju paran_broj(n) koja vraća True ako je broj paran,
a False ako nije.
Zadatak 3 (za talentovane učenike)
Napiši funkciju maksimum(a, b) koja vraća veći od dva broja.
# zadatak_maksimum.py
def maksimum(a, b):
if a > b:
return a
else:
return b
print(maksimum(7, 10)) # očekivano 10
7. Zašto su funkcije sa return važne?
Funkcije koje vraćaju vrednosti su osnova:
- matematičkih izračunavanja
- igara i bodovanja
- rada sa senzorima (MicroPython)
- većih i ozbiljnijih programa
U sledećoj lekciji naučićeš šta se dešava sa promenljivama unutar funkcije i kako Python pamti njihove vrednosti.
Dodatni zadaci za vežbu — Parametri i povratne vrednosti (Python)
Ovi zadaci su napravljeni kako bi ti pomogli da dodatno vežbaš funkcije koje primaju podatke i vraćaju rezultate (povratne vrednosti).
-
Kvadratni koren i formatiran ispis
Napiši funkciju
kvadratni_koren(x)koja vraća kvadratni koren brojax. Testiraj je u glavnom programu i lepo ispiši rezultat.def kvadratni_koren(x): # vrati sqrt(x) bez built-in math (npr. x**0.5) pass print(kvadratni_koren(25)) # 5.0 -
Pozdrav sa porukom
Funkcija
pozdrav_poruka(ime, poruka)neka vraća spojenu poruku: npr. „Zdravo Ana! Dobrodošao!“ — bez direktnogprint()u funkciji.def pozdrav_poruka(ime, poruka="Zdravo"): pass print(pozdrav_poruka("Ana")) print(pozdrav_poruka("Marko", "Ćao")) -
Prosečna ocena
Napiši funkciju koja prima listu ocena i vraća prosečnu vrednost. U glavnom programu testiraj sa nekoliko listi.
def prosek_ocena(ocene): # vrati prosek pass print(prosek_ocena([5, 4, 3, 5])) -
Višestruki povratak vrednosti
Funkcija
min_max(lista)vraća najmanji i najveći broj iz liste (kao tuple).def min_max(lista): pass naj, najv = min_max([10, 2, 7, 14]) print(naj, najv) -
Računanje obima i površine (više parametara)
Napiši funkciju
pravougaonik(a, b)koja vraća obim i površinu pravougaonika — prvo obim, pa površinu.def pravougaonik(a, b): pass o, p = pravougaonik(5, 3) print(o, p) # 16, 15 -
Podrazumevani parametri
Napiši funkciju
pozdrav(ime, pozdrav=\"Zdravo\")koja koristi podrazumevani pozdrav ako se drugi parametar ne prosledi.def pozdrav(ime, pozdrav="Zdravo"): pass print(pozdrav("Luka")) print(pozdrav("Sara", "Ćao")) -
Delilac i ostatak
Funkcija
deljenje(a, b)neka vraća i rezultat deljenja i ostatak (kao tuple). Testiraj sa različitim brojevima.def deljenje(a, b): pass rez, ost = deljenje(17, 5) print(rez, ost) # 3, 2 -
Kalkulator sa povratnom vrednošću
Napiši funkciju
calc(a, b, op)koja vraća rezultat za operacije '+', '-', '*', '/' (voditi računa o deljenju sa nulom).def calc(a, b, op): pass print(calc(8, 3, '+')) print(calc(8, 0, '/')) -
Filter parnih brojeva
Funkcija
parni(lista)koja vraća novu listu samo sa parnim brojevima iz prosleđene liste.def parni(lista): pass print(parni([1,2,3,4,5,6])) -
Parameter tipa „keyword“
Testiraj funkciju
pozdrav_kw(ime=None, poruka=None)tako da radi i ako pozoveš sa imenima parametara npr.pozdrav_kw(poruka=\"Ćao\", ime=\"Mila\").def pozdrav_kw(ime=None, poruka=None): pass print(pozdrav_kw(poruka="Ćao", ime="Mila"))
Bonus izazov: Kombinuj funkcije — napravi aplikaciju koja pita korisnika da unese listu brojeva, a zatim koristi jednu funkciju da izračuna prosek, drugu da izračuna min/max, i treću da ispiše lepu poruku sa rezultatima.
Dodatna pojašnjenja: parametri i povratne vrednosti
U ovoj sekciji produbljujemo razumevanje rada funkcija u Pythonu i obrađujemo česte nedoumice koje se javljaju kod početnika.
1. Razlika između print() i return
Jedna od najčešćih grešaka je mešanje print() i return.
print()služi samo za ispis na ekranreturnsluži da funkcija vrati vrednost koju možemo dalje koristiti
def saberi(a, b):
print(a + b)
rezultat = saberi(2, 3)
print(rezultat)
Iako se broj 5 ispisuje na ekranu, promenljiva rezultat nema vrednost koja se može koristiti.
Ispravan pristup:
def saberi(a, b):
return a + b
rezultat = saberi(2, 3)
print(rezultat)
2. Šta se dešava ako funkcija nema return?
Ako funkcija ne sadrži return, Python automatski vraća vrednost None.
def test():
x = 10
print(test())
Rezultat će biti:
None
To je važno znati jer korišćenje None u daljim proračunima može dovesti do grešaka.
3. Funkcije koje vraćaju različite tipove podataka
Funkcija ne mora da vraća samo jedan broj ili tekst — može vratiti:
- broj (
int,float) - tekst (
str) - listu
- tuple (više vrednosti)
def statistika(a, b):
zbir = a + b
razlika = a - b
return zbir, razlika
z, r = statistika(10, 3)
print(z, r)
Ovde funkcija vraća dve vrednosti odjednom, koje Python pakuje u tuple.
4. Šta ako prosledimo pogrešan tip parametra?
Python ne proverava tipove unapred, pa greška nastaje tek tokom izvršavanja.
def uvecaj_za_jedan(x):
return x + 1
print(uvecaj_za_jedan("5"))
Ovaj kod izaziva grešku jer Python ne može da sabere string i broj.
Dobra praksa je:
- jasno imenovanje funkcija i parametara
- provera tipa pomoću
isinstance()(u naprednijim primerima)
5. Kako razmišljati o funkciji – dijagram toka
Funkciju možeš zamisliti kao mali „mašinski proces“:
- Ulaz → parametri
- Obrada → telo funkcije
- Izlaz → povratna vrednost (
return)
Ako nema return, izlaz je automatski None.
Razmišljanje na ovaj način pomaže kod pisanja složenijih programa i mini-projekata.
Skriveni mini kviz — Parametri i povratne vrednosti
Proveri razumevanje parametara, return naredbe i povratnih vrednosti iz funkcija.
Otvori kviz
Mini kviz: Parametri i return
1. Šta vraća sledeća funkcija?
def zbir(a, b):
return a + b
2. Šta će se ispisati?
def f(x):
return x * 2
print(f(3))
3. Koliko parametara ima funkcija?
def test(a, b, c):
return a + b + c
4. Šta se dešava posle return naredbe?
5. Šta funkcija vraća ako nema return?
Zadaci za samostalno rešavanje — Parametri i povratne vrednosti (7. i 8. razred)
Ovi zadaci proveravaju razumevanje parametara, povratnih vrednosti i kombinovanja više funkcija. Teži zadaci sadrže kratko uputstvo, ali ne i rešenje.
-
Dupliranje broja
Napiši funkciju koja prima jedan broj i vraća njegovu duplu vrednost.
-
Površina kvadrata
Napiši funkciju koja prima dužinu stranice kvadrata i vraća njegovu površinu.
-
Broj cifara
Napiši funkciju koja prima ceo broj i vraća koliko cifara ima taj broj.
Uputstvo: možeš koristiti pretvaranje broja u string ili ponavljano deljenje sa 10.
-
Višestruke povratne vrednosti
Napiši funkciju koja prima dva broja i vraća njihov zbir, razliku i proizvod.
Uputstvo: razmisli kako Python vraća više vrednosti iz funkcije.
-
Takmičarski nivo — analiza liste
Napiši funkciju koja prima listu celih brojeva i vraća koliko ima pozitivnih, negativnih i nula u toj listi.
Uputstvo: koristi tri brojača i vrati ih kao jednu celinu. Rešenje treba da bude čisto i pregledno.