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.")
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.")
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.")
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.")
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)
Ključna reč elif, skraćeno od else-if, omogućava da naredbu grananja koristimo na sledeći način:
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.")