Ми дізналися про новий тип даних у мові програмування Python – булевий. I знаємо, що значення цього типу набувають логічні вирази (порівняння даних), а саме True або False. А тепер навчимося виконувати дії із логічними виразами.
Оператор (у програмуванні) – це знак або вираз, який позначає виконання певної дії. Ми вже знайомі із деякими математичними операторами, але не називали їх так. Тобто оператор «+» означав дію додавання, а оператор «/» – ділення. Тому і для дій з логічними виразами існують спеціальні оператори, про які зараз буде йти мова.
7.1 Оператор AND (з англ. «і»)
Оскільки ці оператори виконують дії з змінними логічного типу даних, а отже і результат буде True або False. Цей оператор засовується таким чином: [лог. вираз] and [лог. вираз] and … Такий складений логічний вираз буде набувати значення True тільки у тому випадку, якщо всі зміні або логічні вирази будуть мати значення True. Якщо хоча б один із них буде мати значення False то і весь вираз буде набувати цього значення.
Його застосовують для запису декількох умов, які повинні виконатися одночасно. Так як в програмуванні мовою Python не рекомендовано застосувати вираз 1>а>5, нам потрібно об’єднати два вирази: 1>a та а>5. От саме для цього і потрібен оператор and. Тобто 1>a and а> 5.

Давайте розглянемо таблицю 4. Перший стовпчик- це значення логічної змінної а, другий – значення змінної b, а третій це результат виразу a and b. Зверніть увагу на результат дії та його зміну. Тепер попрацюємо з оператором and в самому середовищі розробки програмного забезпечення IDLE. Отже, задача наступна: на вході маємо число, яке буде запитуватися у користувача з повідомленням «a=». На виході маємо результат перевірки на те чи належить це число проміжку від 0 до 100 (тобто 0<a<100).

7.2 Оператор OR (з англ. «або»)
Щодо оператора or, то він застосовується так само, як і оператор and. Результатом виразу буде True в тому випадку, якщо хоча б один із складових цього виразу буде мати значення True (табл. 5).

7.3 Оператор NOT (з англ. «не»)
Цей оператор застосовується трішки по іншому: він ставиться на початку, тобто перед логічним виразом, надаючи йому при цьому протилежного значення. Тобто, вираз not 2>1 буде приймати значення False (протилежний до значення виразу 2>1). Взагалі не дуже часто використовують цей оператор окремо, так як вираз not 2>1 можна замінити на протилежний логічний вираз (в даному випадку 2<1). Та все ж його часто застосовують із іншими операторами. Для прикладу вираз not 1>2 and 4>3 буде мати значення True (not 1>2 = True, 4>3 = True).
Взагалі, всі логічні оператори можна об’єднувати у різні вирази. Наприклад: not 2>1 or (3>2 and 4>=4).
7.4 Розгалуження на мові програмування Python
Ну так як ми заговорили про логіку, то, звичайно, ми повинні згадати і про розгалуження. Знову повернемося до блок-схем. У графічному вигляді розгалуження позначається таким чином (мал. 8). Тобто є умова і в залежності від її виконання, чи не виконання будуть запускатися певні дії.

Для того, щоб представити умову у програмному коді Python, використовуються наступні оператори:
- if (з англ. «якщо»), застосовується у вигляді наступної конструкцій:
if логічний вираз:
дії, які будуть виконуватися якщо логічний вираз буде мати значення True
- else (з англ. «інакше»), є необов’язковою частиною конструкції if:
if логічний вираз:
дії, які будуть виконуватися якщо логічний вираз буде мати значення True
else:
дії, які будуть виконуватися якщо логічний вираз буде мати значення False
Конструкцію лише із оператором if називають неповним розгалуженням, а повним в свою чергу конструкцію з if та else.
Отже, основна конструкція розгалуження у мові Python складається із двох «частин» if та else. Давайте поглянемо, як це працює не практиці. Задачею буде написати програму на вході якої маємо число, програма перевіряє чи це число більше 0 i видає результат у випадку True: «Це число додатнє», а у випадку False: «Це число від’ємне».
Маємо наступну конструкцію коду:

Запустимо програму і для прикладу спочатку введемо число -5 та отримаємо повідомлення «Це число від’ємне», а потім введемо число 6, та отримаємо повідомлення «Це число додатнє».(мал. 9)

Але у нас часто можуть виникати складні розгалуження, які передбачають перевірку декількох умов (мал. 10).

Для цього існує ще один оператор elif, він також не використовується самостійно, а є необов’язковою складовою конструкції if. Застосовується він наступним чином:
if логічний вираз:
дії, які будуть виконуватися якщо логічний вираз буде мати значення True
elif логічний вираз:
дії, які будуть виконуватися якщо попередній логічний вираз має значення False, а даний логічний вираз буде має значення
True
…
else:
дії, які будуть виконуватися якщо всі логічні вирази будуть мати значення False
Як ви вже могли помітити із конструкції коду, оператор elif можна використовувати нескінчену кількість раз.
Для того, щоб закрити теоретичні знання практикою, пропоную вдосконалити нашу попередню задачу. Давайте розглянемо варіант, що число а буде дорівнювати 0, адже наша програма буде видавати неправильний результат при введенні нуля, просто так як в цьому випадку умова не буде виконуватися тому буде виводитися, що число 0 є від’ємним (мал. 11).

Отже додамо ще одну перевірку, чи є введене число нулем, якщо так, то на екран буде виведено повідомлення «Число дорівнює 0». Після вдосконалення програма має такий вигляд:


Запустимо її та введемо числа -1, 1 та 0 і побачимо, що ми отримаємо (мал. 12).

Зверніть увагу! Всі дії які є пунктами оператора if, else та elif у коді починаються з нового рядка, тим самим ви позначаєте належність цих дій відповідному оператору.
Контрольні питання
1. Для чого використовуються логічні оператори and, or та not?
2. Як будується розгалуження у мові програмування Python?
3. Для чого служить оператор elif?
Практичні завдання
Створіть новий файл Python за допомогою середовища розробки програмного забезпечення IDLE. Створіть програму за даною задачею:
- Ha вході маємо ціле число. Якщо число входить у проміжок (0;100) вивести повідомлення «Число входить в проміжок», якщо ні, то вивести відповідне повідомлення;
- Ha вході маємо ціле число. Якщо число входить у проміжок [-33;150)U{151} вивести повідомлення «Число входить в проміжок», якщо ні, то вивести відповідне повідомлення;
- с. на вході маємо будь-яке число. Якщо число входить у проміжок (-100;0)U(0;100) вивести повідомлення «Число входить в проміжок», якщо ні то вивести відповідне повідомлення;
- на вході маємо три числа. Програма порівнює їх між собою та виводить результат на екран. Наприклад: якщо користувач введе числа 4, 7, 2, то програма виведе повідомлення «2<4<7». Розглянути всі варіанти,
- на вході маємо довжини сторін трикутника. Якщо даний трикутник може існувати, то на екран виведеться повідомлення «Даний трикутник існує», в іншому випадку «Трикутника із такими сторонами не існує». Підказка: трикутник буде існувати якщо сума будь-яких двох його сторін буде більша за третю сторону;
- маємо рівняння виду a/(x-3)=b. Параметри а i b запитуються у користувача. Задачею програми буде розв’язати дане рівняння та вивести чому дорівнює x;
- маємо рівняння виду:

Параметри a, b і c запитуються у користувача. Задачею програми буде розв’язати дане рівняння та вивести чому дорівнює х.