Pogojni stavki

Vrnimo se k našemu primeru s plavalnim bazenom. Recimo, da bo vstopnica za otroke do vključno 5. leta starosti odslej zastonj. Polnoletni še vedno plačajo polno ceno, tisti vmes pa polovično. Nalogo sedaj rešimo tako, da se najprej vprašamo, ali je starost enaka najmanj 18 let. Če je, nastavimo spremenljivko cena na polno ceno, sicer pa preverimo tudi, ali je starost večja od 5 let. Če je, je cena polovična, sicer pa znaša 0:

Popravimo program:

cena = float(input('Koliko stane vstopnica? '))
starost = int(input('Koliko let imaš? '))
if starost >= 18:
  c = cena
else:
  if starost > 5:
    c = cena / 2
  else:
    c = 0
print('Vstopnica zate stane ' + str(c) + ' EUR.')

Zaporedje else-if se v programiranju pogosto uporablja, zato nam python ponuja okrajšavo elif:


Izvedi Počisti



Program sedaj beremo takole: če je starost enaka najmanj 18, priredi spremenljivki c vrednost spremenljivke cena. V nasprotnem primeru preveri, ali je starost večja od 5. Če to drži, je cena polovična, sicer pa se bomo kopali zastonj.

V razmislek

V stavku if-elif-elif-...-else se vedno izvede natanko en blok (skupek stavkov). Če je pogoj izpolnjen že pri bloku if, se izvedejo stavki v tem bloku, vsi ostali bloki pa se preskočijo. V nasprotnem primeru se preveri pogoj pri prvem bloku elif; če je izpolnjen, se izvedejo pripadajoči stavki, preostali bloki pa se preskočijo. V nasprotnem primeru se preveri pogoj pri drugem bloku elif itd. Blok else se izvede le takrat, ko nobeden od pogojev pri blokih if in elif ni izpolnjen.