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.