✦ Osnove Pythona Modul funkcija

Koncept 15 · Definisanje funkcija

Imenujte kod koji možete ponovo koristiti.
Pozovite ga kada vam zatreba.

Funkcija daje ime radnji koju možeš ponovo koristiti. Definiši njene instrukcije jednom, a zatim pozovi funkciju kad god je ta radnja potrebna.

01 Uči02 Isprobaj03 Predvidi

Učenje kao gost

Učiš kao gost — sačuvaj svoj napredak!

Napravi besplatan nalog i uči uz Sloby AI mentora, proveru razumevanja i praćenje napretka.

Cela platforma je besplatna tokom 2026. Foundations ostaje zauvek besplatan.

Najpre definiši radnju, a zatim je pozovi kada ti zatreba.

Osnovni životni ciklus funkcije je: definicija → zapamćene instrukcije → poziv → izvršavanje tela → nastavak programa. Definicija ne izvršava svoje telo odmah.

def greet():
    print("Hello")

def govori Pythonu da definišeš funkciju. greet je ime funkcije, () je sintaksa funkcije, a : označava početak njenog tela. Uvučeni print("Hello") pripada funkciji, ali ga Python ne izvršava kada prvi put pročita definiciju. Prazne zagrade znače da ova funkcija još ne prima vrednosti; sledeći koncept će pokazati kako funkcije mogu da primaju podatke.

def greet(): definiše radnju i pamti njene instrukcije. greet() poziva tu radnju. Samo poziv ulazi u telo funkcije i izvršava print("Hello").

↳

Zapamti ovaj životni ciklus: definiši → Python pamti instrukcije → pozovi → izvrši telo → nastavi. Zato funkciju možeš pozvati više puta bez ponavljanja njene definicije.

Prati jedan poziv funkcije
print("Before")

def greet():
    print("Hello")

print("Defined")
greet()
print("After")

Python ispisuje Before, pamti definiciju bez ispisa Hello, a zatim ispisuje Defined. Kod greet(), Python ulazi u telo i ispisuje Hello. Kada se telo završi, izvršavanje se vraća na sledeći red i ispisuje After.

Zašto radnji dati ime funkcije?
def show_welcome():
    print("Welcome!")

show_welcome()
show_welcome()
show_welcome()

Bez funkcije, ista print instrukcija bila bi kopirana tri puta. Funkcija daje ime jednoj radnji i omogućava ti da je pozoveš kad god ti zatreba. Ako se radnja kasnije promeni, menjaš njenu definiciju na jednom mestu.

Jedna definicija, više poziva
def ring_bell():
    print("Ding!")

ring_bell()
ring_bell()
ring_bell()

Svaki poziv ponovo izvršava isto uvučeno telo. Definicija se piše jednom, dok se radnja može dogoditi onoliko puta koliko programu treba.

Definiši pre poziva do kog Python dolazi
greet()

def greet():
    print("Hello")

Python izvršava program odozgo nadole. Kada stigne do prvog greet(), to ime još nije definisano, pa poziv ne može da uspe. Stavi definiciju pre poziva koji Python treba da izvrši.

Biraj imena koja opisuju radnju
greet()
show_menu()
print_report()
display_message()

Jasno ime funkcije pomaže čitaocu da predvidi šta će se dogoditi kada je pozove. Koristi opisna imena u snake_case obliku umesto nejasnih imena kao što su x(), thing() ili do_it().

Uvlačenje označava telo funkcije
def greet():
    print("Hello")

print("Outside")

Uvučeni print pripada funkciji greet(). print("Outside") nije uvučen, zato nije deo funkcije i izvršava se u okolnom programu.

Praktičan kontrolni spisak za čitanje funkcija

  1. Pronađi definicijuGde def definiše funkciju i koje ime daje radnji?
  2. Pronađi teloKoje uvučene instrukcije pripadaju toj funkciji?
  3. Pronađi svaki pozivGde program koristi () da pozove funkciju?
  4. Prati redosled izvršavanjaŠta se izvršava pre poziva, tokom tela i nakon povratka iz poziva?
  5. Prebroj poziveSvaki poziv ponovo izvršava telo, zato prebroj koliko puta se radnja događa.

Česte početničke greške

  • Očekivanje da definicija izvršava svoje telodef greet(): samo definiše funkciju. Bez greet() ne ispisuje Hello.
  • Zaboravljanje zagrada pri pozivugreet() poziva funkciju. Na ovom nivou, čitaj greet kao njeno ime, a greet() kao instrukciju da je pozoveš.
  • Pozivanje pre nego što je funkcija definisanaPython prolazi kroz kod odozgo nadole, zato definiši funkciju pre poziva do kog stigne.
  • Zaboravljanje dvotačkedef greet() nije potpuna definicija. Dvotačka započinje telo funkcije: def greet():.
  • Neispravno uvlačenjeTelo funkcije mora biti uvučeno kako bi Python znao koje se instrukcije izvršavaju kada se funkcija pozove.
  • Mešanje definicije i pozivaVizuelno razlikuj def greet():, koji definiše radnju, od greet(), koji je izvršava.

Python radni prostor

Učitavanje Python okruženja…

Promeni poruku unutar greet(), pozovi funkciju više puta i pokreni kod. Primeti kako jedna definicija može proizvesti više izvršavanja.

defining_functions.pyPython
IzlazČeka se Python
Okruženje pregledača se učitava. I dalje možeš da menjaš primer koda.

Pyodide pokreće Python u Web Worker-u pregledača. Zaustavlja se i ponovo pokreće ako se kod predugo izvršava. Izvršavanje u pregledaču nije potpuna bezbednosna granica; ne unosi tajne i ne oslanjaj se na njega za izolaciju nepouzdanog koda.

Šta će ovaj program ispisati?

Pročitaj definiciju funkcije i svaki poziv pre nego što izabereš odgovor.

def say_hi():
    print("Hi!")

print("Before")
say_hi()
print("After")
Izaberi izlaz
Sloby, maskota Python AI Tutora

Tvoj mentor za učenje

Prijavite se da pitate Slobyja

Napravite besplatan nalog ili se prijavite za AI smernice tokom učenja.

Prijavite se da proverite svoje razumevanje

Napravite besplatan nalog ili se prijavite da biste dobili AI povratnu informaciju i sačuvali napredak u učenju.

Python AI Tutor · Uči razumevanjem, a ne samo pokretanjem koda.