Kaj izpiše spodnji program, če je vrednost spremenljivke tocke
enaka 3? Kaj se izpiše, če je enaka 7, 0, 10 oziroma 15?
tocke = int(input('Vnesi število točk: ')) if tocke > 10: print('A') if tocke >= 5: print('B') elif tocke > 0: print('C') else: print('D')
Matematični izrazi, kot so npr. 1 + 2
ali (3.7 - 2.6) / 5.4
, so nam že precej domači. Pri programiranju pa nam pogosto pridejo prav tudi logični izrazi. Primera logičnih izrazov sta, denimo, 3 <= 4
in 5 > 9
. Logični izraz ima samo dve možni vrednosti: resnico (True
v pythonu) in neresnico (False
v pythonu). Vrednost izraza 3 <= 4
je torej resnica, vrednost izraza 5 > 9
pa neresnica, saj število 5 ni večje od števila 9. Sledi še nekaj primerov:
>>> 2 <= 2 True >>> 2 < 2 False >>> 3 == 4 False >>> 3 != 4 True
Vrednosti logičnih izrazov lahko shranjujemo v spremenljivke logičnega tipa (tip bool
v pythonu):
>>> a = (2 < 1) >>> b = (3 == 3) >>> a False >>> b True >>> type(a) <class 'bool'> >>> type(b) <class 'bool'>
Logične izraze lahko med seboj povezujemo z logičnimi operatorji and
, or
in not
. Izraz a and b
je resničen, samo če sta resnična podizraza a
in b
. Izraz a or b
je resničen, če je vsaj eden od podizrazov resničen; neresničen je samo tedaj, ko sta oba podizraza neresnična. Izraz not a
pa je resničen, če je podizraz a
neresničen, in obratno.
Na primer vrednost izraza (3 <= 5) and (6 == 3)
je enaka False
, saj je prvi podizraz resničen, drugi pa neresničen. Vrednost izraza (3 <= 5) or (6 == 3)
pa je enaka True
.
Oglejmo si primer uporabe logičnih operatorjev. Leto je prestopno, če je deljivo s 400 ali pa če je deljivo s 4, vendar ne s 100. Zapišimo to pravilo v obliki programa prestopnoLeto.py
. Spomnimo se, da je število a deljivo s številom b natanko tedaj, ko je ostanek pri deljenju a z b enak 0.