Uslovi pomažu Pythonu da izabere put.
Uslov je izraz koji Python može da proceni kao True ili False. U lekciji Operatori naučio si da poređenja kao što je age >= 18 daju logički rezultat. Sada if koristi taj rezultat da izabere koji će se blok koda izvršiti: uslov → True/False → izbor grane → izvršavanje tog bloka.
age = 20
if age >= 18:
print("You are an adult")Python najpre proverava age >= 18 i dobija True. Pošto je uslov True, Python ulazi u uvučeni blok i izvršava print(...). Da je uslov False, Python bi preskočio taj blok.
uslov → True/False → izbor grane → izvršavanje tog blokaObrazac if condition: započinje odluku. if uvodi pitanje, uslov daje logički rezultat, dvotačka najavljuje blok, a uvlačenje pokazuje koji kod pripada tom bloku.
Uvlačenje je važno: Uvlačenje govori Pythonu koje naredbe pripadaju grani. Ono nije samo vizuelno formatiranje: naredba if bez uvučenog bloka, kao što je if age >= 18:
print("Access granted"), izaziva IndentationError.
temperature = 12
if temperature > 20:
print("It's warm")
else:
print("It's cold")Blok else je druga putanja za isto pitanje. Pošto je temperature > 20 False, Python preskače blok if i izvršava else. Izvršava se tačno jedna od te dve grane.
if age >= 18:
print("Adult")
print("Access granted")
print("Program continues")Prva dva reda sa print() su uvučena, pa pripadaju bloku if. print("Program continues") nije uvučen, zato se izvršava nakon odluke, bez obzira na to da li je blok if bio izvršen.
score = 75
if score >= 90:
print("Excellent")
elif score >= 60:
print("Passed")
else:
print("Try again")Python proverava ovaj lanac if/elif/else odozgo nadole. score >= 90 je False, pa Python proverava score >= 60. To je True, zato ispisuje "Passed" i preskače preostalu granu. elif je deo istog lanca, a ne zaseban if: pobeđuje prva grana čiji je uslov True.
score = 95
# Too broad first
if score >= 60:
print("Passed")
elif score >= 90:
print("Excellent")
# More specific first
if score >= 90:
print("Excellent")
elif score >= 60:
print("Passed")U prvom lancu je score >= 60 već True, pa Python ispisuje "Passed" i nikada ne proverava elif. Python ne traži bolju granu. Kada se uslovi preklapaju, postavi specifičniji ili stroži uslov pre šireg.
age = 20
has_ticket = True
if age >= 18 and has_ticket:
print("Welcome!")
else:
print("Access denied")age >= 18 daje logički rezultat, dok has_ticket već sadrži logičku vrednost. and kombinuje te rezultate, a if koristi konačni True ili False da izabere granu. To je lekcija Operatori primenjena na odluku.
age = 16
print("Checking age...")
if age >= 18:
print("Adult")
else:
print("Minor")
print("Done")Pre nego što pokreneš ovaj program, zapitaj se: Koji se redovi uvek izvršavaju? Koji uslov se proverava? Koja grana se izvršava, a koja se preskače? Kojim se redosledom pojavljuje ceo izlaz? Ovde se najpre izvršava "Checking age...", uslov je False, zato se izvršava "Minor", a na kraju "Done". To je redosled kojim program prati svoj kod.
