У овој лекцији ћете научити како елегантно писати сложеније испитавање услова.У Python програмском језику важе два следећа правила:
- након if «C» дела, else део се извршава само ако је C false
- могу се комбиновати boolean стања: A and B, A or B, и not A
else
Чести задатак у писању програма је да желимо да ако је неки услов испуњен (true) извршимо неку акцију, а ако није испуњен (false), да извршимо неку другу акцију. У некој од претходних лекција смо имали пример да ако су godine мање од 0 урадимо нешто, а ако godine нису мање од 0, да урадимо нешто друго. Код је личио на овако нешто:
if godine >= 0:
print('Ne putujes kroz vreme')
if godine < 0:
print('Putujes kroz vreme')
Сада ћемо га исправити тако да користимо else команду.
Синтакса је следећа:
if «test»:
«true-telo» # uvucen blok
else:
«false-telo» # jos jedan uvucen blok
Python проверава тачност test услова. Ако је он истинит, тј. true, онда се true-telo извршава, а ако није истинит тј. има вредност false, онда је false-telo извршено.
филозофија else команде
Са else командом не добијамо ништа ново, али она нам помаже да код буде читљивији и боље организован. Ево два примера која раде исту ствар:
if visina < 170: print('Niski ste')else: print('Visoki ste!') | if visina < 256: print('Niski ste')if height >= 256: print('Visoki ste!') |
elif
Python садржи још једну команду, elif, која је корисна зарад лакшег проверавања више услова за исту ствар. Најчешћа синтакса elif конструкције је следећа:
if «test1»:
«telo1» # izvrsava se ako je test1 tacno (true)
elif «test2»:
«telo2» # izvrsava se ako test1 nije tacno, a test2 je tacno
Као што се да приметити, elif је скраћеница за "else if", пошто је то исто као и стављање if команде унутар else блока. Али коришћењем elif, код је краћи, и има мање увлачења редова(индентације). Такође могу да се комбинују више elif команди, и да се дода else на крају.
if «test1»:
«telo1» # izvrsava se ako je test1 true
elif «test2»:
«telo2» # izvrsava se ako je test1 false a test2 true
elif «test3»:
«telo3» # izvrsava se ako su i test1 i test2 false, a test3 je true
else:
«else-telo» # izvrsava se ako su svi predjasnji uslovi false
Eво примера коришћења elif унутар петље.
Boolean оператори: and, or, not
Могу се комбиновати boolean изрази користећи "and", "or", и "not", које имају исто значење као у енглеском језику: и, или, не.
- Израз A and B је true ако су и A и B true, и false ако је бар једно од A и B false.
- Израз A or B је истинит (true) ако је или A или B true (дакле, бар један од та два), и false ако су оба false. (На пример, школа је затворена ако је празник или викенд.)
- Израз not A је истинит (true) ако је A false, и false ако је A true. (Нпр. гладан си ако ниси јео много.)
Редослед (старост) операција
редослед је следећи:
Not
And
Or
Важи следеће:
not x or y and z значи (not x) or (y and z)
Која је вредност следећег израза A or not B and C ако је (A, B, C) = (False, True, True)?