14: Else, And, Or, Not


У овој лекцији ћете научити како елегантно писати сложеније испитавање услова.У 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 команду.

 

Пример: 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!')

 

Вежба кодирања: Апсолутна вредност
Користећи if и else команде, написати програм који учитава цео број, и штампа његову апсолутну вредност.
Можете унети улаз за програм у поље испод.

 

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 унутар петље.

 

 

Пример: још једна if-else конструкција

 

Вежба кодирања: Први, други, трећи
У енглеском језику, првих девет редних бројева се пише на следећи начин: 1st, 2nd, 3rd, 4th, 5th, 6th, 7th, 8th, 9th. Написати програм који за учитан број х између 1 и 9 штампа одговарајући редни број на енглеском језику. Cавет
Можете унети улаз за програм у поље испод.

 

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)?
Тачно!