Ukoliko želimo da se naš program ponaša drugačije u zavisnosti od nekih faktora, u Pajtonu koristimo naredbu grananja, odnosno naredbu if. Napisaćemo program koji određuje da li je broj pozitivan. Ukoliko je broj negativan, program neće raditi ništa nakon prihvatanja korisničkog unosa.


In [6]:
number = int(input("Enter a number: "))

if number > 0:
    print("The number is positive.")


Enter a number: 5
The number is positive.

Ključna reč else koristi se u paru sa ključnom rečju if i njome definišemo else granu, ili granu "ne". To je blok koda koji će se izvršiti ukoliko uslov u naredbi grananja (naredbi if) nije zadovoljen.

Kada se program izvršava, i dođe se do naredbe grananja, izvršiće se ili grana "da", ili grana "ne".


In [7]:
number = int(input("Enter a number: "))

if number >= 0:
    print("The number is zero or positive.")
else:
    print("The number is negative.")


Enter a number: 3
The number is zero or positive.

Ukoliko želimo da ispitamo da li je zadovoljeno dva ili više uslova, koristimo Pajtonov logički operator AND (matematička operacija konjukcije, odnosno matematičko "i").


In [8]:
number = int(input("Enter a number: "))

if (number > 0) and (number < 10):
    print("The number is between 0 and 10.")
else:
    print("The number is not between 0 and 10.")


Enter a number: 15
The number is not between 0 and 10.

Ukoliko želimo da ispitamo da li je zadovoljen bar jedan od dva ili više uslova, koristimo Pajtonov logički operator OR (matematička operacija konjukcije, odnosto matematičko "ili").


In [9]:
number = int(input("Enter a number: "))

if (3 == number) or (5 == number) or (7 == number):
    print("Your number is a 357 digit.")
else:
    print("Your number is not a 357 digit.")


Enter a number: 8
Your number is not a 357 digit.

Ukoliko želimo da se neki blok koda izvršava samo kada određeni uslov nije zadovoljen, koristimo logički operator NOT (matematička operacija negacije).


In [10]:
###############################################################
# A program to calculate the area of a square. If the input
# square side is 0 or negative, we will print an error message
# and quit the program
###############################################################

square_side = int(input("Enter the square side: "))

is_greater_than_zero = square_side > 0

# Quit the program if the number is not greater than zero
if not is_greater_than_zero:
    print("The square side needs to be greater than zero.")
    quit()

# If we didn't quit the program, than the number is okay to work with
square_area = square_side ** 2
print("Square area is: %f" % square_area)


Enter the square side: 5
Square area is: 25.000000

Ključna reč elif, skraćeno od else-if, omogućava da naredbu grananja koristimo na sledeći način:

  • Ukoliko je uslov 1 zadovoljen, izvrši blok 1
  • Ukoliko nije, a zadovoljen je uslov 2, izvrši blok 2
  • Ukoliko nije, a zadovoljen je uslov 3, izvrši blok 3
  • ...
  • Ukoliko nije, a zadovoljen je uslov N, izvrši blok N
  • Ukoliko nije, izvrši blok

Sledi primer u kome ćemo učitati jedan samoglasnik s tastature, a zatim ispisati ime koje počinje tim samoglasnikom.


In [11]:
# The names
a_name = "Adriana"
e_name = "Ernest"
i_name = "Ian"
o_name = "Olivia"
u_name = "Ursula"

# Get a string from the keyboard
instr = input("Please enter a vowel: ")

out_template = "The name starting with \"%s\" is %s."

# Print the name or throw an exception if the given string is not a vowel
if ("a" == instr) or ("A" == instr):
    print(out_template % (instr, a_name))
elif ("e" == instr) or ("E" == instr):
    print(out_template % (instr, e_name))
elif ("i" == instr) or ("I" == instr):
    print(out_template % (instr, i_name))
elif ("o" == instr) or ("O" == instr):
    print(out_template % (instr, o_name))
elif ("u" == instr) or ("U" == instr):
    print(out_template % (instr, u_name))
else:
    print("The entered text is not a vowel.")


Please enter a vowel: e
The name starting with "e" is Ernest.