11.2. Комбинација више логичких услова¶
Једноставнији услови се могу комбиновати. На пример, учитељица жели да поклони по књигу свим ученицима који нису правили проблеме у владању током године и који су били одлични ђаци или су учествовали у украшавању учионице. Једноставније услове комбинујемо обично речима: и (у програму and), или (у програму or) и не (у програму not). Погледајмо ово кроз решење које следи.
Мењајте логичке променљиве у наредним примерима за објашњења са True на False и обрнуто, покрећите програме изнова, и пратите њихов одговор.
Приметићеш да је претходна реченица облика не услов1 и (услов2 или услов3), где је услов1 услов да је ученик правио проблеме, услов2 да је био одличан ђак, а услов3 да је учествовао у украшавању учионице.
Да би услов облика услов1 и услов2 био испуњен, морају бити испуњена оба услова, услов1 и услов2. На пример, да би реченица „Грмело је и севало“ била тачна, потребно је да је грмело и да је севало. Реч и на неки начин одговара пресеку скупова о којем сте сигурно много учили из математике. Реч и се у језику Пајтон записује помоћу речи
and
.Да би услов облика услов1 или услов2 био испуњен, довољно је да један од услова, услов1 или услов2, буде испуњен. На пример, реченица „Ићи ћу за викенд у позориште или у биоскоп“ је тачна ако одеш само у позориште, само у биоскоп, али и ако одеш и у позориште и у биоскоп. Реч или се у језику Пајтон записује помоћу речи
or
.Да би услов облика не услов био испуњен услов услов не сме бити испуњен. На пример, реченица „Данас не пада киша“ је тачна само ако реченица „Данас пада киша“ није тачна. Реч не се у језику Пајтон записује помоћу речи
not
.
Често је потребно проверити да ли се број налази у неком интервалу (на пример, време је најпријатније ако је температура између 20 и 25 степени, тј. ако припада интервалу \([20, 25]\)). То се ради тако што се утврди да је вредност већа од доње границе интервала и да је мања од горње границе интервала.
Често је нејасно да ли границе интервала припадају интервалу или не. На пример, када кажемо између 20 и 25 степени, није јасно да ли ту подразумевамо и 20 и 25 степени или не. Да би се разјаснило да ли граница припада интервалу, у математици се користе различите врсте заграда. Обичне заграде () означавају отворене интервале којима границе не припадају, док угласте заграде [] означавају затворене интервале који садрже и своје границе. На пример, интервал \([20, 25]\) садржи и вредности 20 и 25, интервал \((20, 25)\) их не садржи, док интервал \([20, 25)\) садржи вредност 20, али не и 25.
У Python окружењу се користе само угласте заграде за обележавање интервала, а представљају
полуотворени интервал из математике. Са овим смо се већ срели код
индексирања ниски и листа (подсетимо се, str[a:b]
издваја све карактере из ниске са
позиција из интервала \([a, b)\), тј. карактере који почињу на
позицији a
, а завршавају се на позицији стриктно испред b
).
Другим речима узима се у обзир карактер на позицији a
, затим сви између
a
и b
, док се карактер на позицији b
не узима у обзир.
Индекс телесне масе¶
![](../_static/img/question-mark.png)
Индекс телесне масе човека (енг. body mass index, bmi) се дефинише као количник његове масе у килограмима и квадрата његове висине у метрима. Нормалним се сматра индекс телесне масе из (затвореног) интервала од \(18,5\frac{kg}{m^2}\) до 25 \(25\frac{kg}{m^2}\). Да ли је човек који је висок 180 центиметара и тежак 79 килограма нормалне дебљине?