Naredbe if, elif i else


Cesto je u programima potrebno više od dva toka izvršavanja. Tada se koristi naredba elif izmedu naredbi if i else. Ove naredbe koristimo na sledeći način:


if USLOV1:
             prvi blok naredbi
elif USLOV2:
             drugi blok naredbi             ...
else:
             poslednji blok naredbi

Najzad možemo da rešimo primer sa početka: želimo da ispitamo da li je broj 24 deljiv brojem 6. To je prikazano sledećim kodom.


  
x = 24
if x % 2 == 0 and x % 3 == 0: 
	print ("Broj je deljiv sa 6")
elif x % 2 == 0:
	print ("Broj je deljiv sa 2")
elif x % 3 == 0:
	print ("Broj je deljiv sa 3")
else:
	print ("Broj nije deljiv ni sa 2, ni sa 3!")
            
Kopiraj

Nakon pokretanja programa kao rezultat dobićemo:
>> Broj je deljiv sa 6

Zanimljivo

Sve što smo dosada naučili, možemo iskoristiti da pišemo neke zanimljive programe. Na primer, želimo da napišemo program koji će uneti glagol u infinitivu prebaciti u prvo lice jednine futura. Ceo program kucajte u konzoli sa strane, da biste videli kako radi.
Dakle, prvo je potrebno uneti glagol. Za unošenje teksta sa tastature koristimo funkciju raw_input(). U zagradama se može nalaziti tekst koji se pojavljuje prilikom pokretanja programa kao informacija korisniku o tome šta treba da unese sa tastature. (Vidimo u našem primeru da je to tekst: 'Unesite glagol u infinitivu:').

  
glagol = raw_input('Unesite glagol u infinitivu:')
			

Promenljivoj glagol dodeljujemo vrednost koju unosimo koristeći funkciju raw_input(). Sledeće što radimo jeste korišćenje metoda lower(), koji primenjujemo nad promenljivom glagol. Ovaj metod sva velika slova promenljive glagol prebacuje u mala i taj novi string dodeljujemo promenljivoj glagol. Ovo nam je potrebno zato što Pajton pravi razliku između malih i velikih slova, pa ćemo posmatrati samo mala slova.

 
glagol=glagol.lower()
			

Proveravamo da li je string koji je korisnik uopšte uneo reč. Odnosno, funkcijom len() proveravamo da li je dužina našeg stringa manja od 2 (ne postoje glagoli u infinitivu čija je dužina manja ili jednaka od 2, npr. “ći” nije glagol), a negacijom metoda isalpha() proveravamo da li se u stringu koji je korisnik uneo nalaze još neki karakteri osim slova (npr. brojevi, znaci interpunkcije itd.)

 
if len(glagol) <=2 or not glagol.isalpha():
	print ('Niste uneli glagol!')
	

Ako je bilo koji od ova dva uslova ispunjen, ispisuje se “Niste uneli glagol”. U suprotnom, hoćemo da promenljivoj kraj dodelimo string koji sadrži poslednja dva karaktera stringa glagol. Njih izdvajamo na sledeći način:

 
else:
	kraj=glagol[len(glagol)-2:len(glagol)]

Kad smo izdvojili poslednja dva slova glagola, hoćemo da proverimo da li se naš glagol završava na “ti” ili na “ći”, pošto građenje futura nije isto za ova dva slučaja. Prvo proveravamo da li je korisnik možda uneo glagol koji nije u infinitivu, odnosno da li se kraj razlikuje i od “ti” i od “ći”, i ako nije u infinitivu ispisujemo korisniku poruku: 'Niste uneli glagol u infinitivu!' . U kodu to izgleda ovako:

 
if (kraj!='ti') and (kraj!='ci'):
	print ('Niste uneli glagol u infinitivu!')

Ako je korisnik ispravno uneo glagol u infinitivu, on se može završavati na “ti” ili “ći”. Prvo proveravamo da li se glagol završava na “ti” i gradimo njegov futur tako što pravimo podstring stringa glagol koji ne sadrži dva poslednja slova stringa glagol, a zatim na taj podstring nadovezujemo string “cu”. Dobijeni string ispisujemo koristeći funkciju print.

 
elif kraj=='ti':
	print (glagol[0:len(glagol)-2]+'cu')

Najzad, ako prethodni uslovi nisu ispunjeni, znači je korisnik uneo glagol koji se završava na “ći”, pa futur gradimo tako što na sam string glagol nadovežemo string “ cu” i ispisujemo futur koristeći funkciju print.

 
else:
	print (glagol+" cu")

Time je završen kod našeg programa za građenje futura.


glagol = raw_input('Unesite glagol u infinitivu:')
glagol=glagol.lower()
if len(glagol) <=2 or not glagol.isalpha():
	print ('Niste uneli glagol!')
else:
	kraj=glagol[len(glagol)-2:len(glagol)]
if (kraj!='ti') and (kraj!='ci'):
	print ('Niste uneli glagol u infinitivu!')
elif kraj=='ti':
	print (glagol[0:len(glagol)-2]+'cu')
elif kraj=='ti':
	print (glagol[0:len(glagol)-2]+'cu')
else:
	print (glagol+" cu")
            
Kopiraj