Python: Урок 4. Логічні вирази

Логічні вирази і логічний тип даних

Часто в реальному житті ми погоджуємося або заперечуємо те чи інше твердження, подію, факт. Наприклад, "Сума чисел 3 та 5 більша за 7" є правдивим твердженням, а "Сума чисел 3 та 5 менша за 7" - хибним. Можна помітити, що з точки зору логіки подібні фрази припускають тільки два результати: "Так" (правда) і "Ні" (неправда). Подібне використовується в програмуванні: якщо результатом обчислення виразу може бути лише "Так" або "Ні", то такий вираз називається логічним.

На минулому уроці були описані три типи даних: цілі, дробові числа, а також рядки. Також виділяють логічний тип даних. У цього типу всього два можливих значення: True (правда) - 1 і False (неправда) - 0. Тільки ці значення можуть бути результатом логічних виразів.

Логічні оператори

Говорячи природною мовою (наприклад, українською) ми позначаємо порівняння словами "дорівнює", "більше", "менше". У мовах програмування використовуються спеціальні знаки, подібні тим, які використовуються в математичних виразах: > (більше), < (менше), >= (більше або дорівнює), <= (менше або дорівнює).

Новими для вас можуть виявитися позначення рівності: == (два знаки “дорівнює”); а також нерівності != (знак оклику і знак “дорівнює”). Тут слід звернути увагу на наступне: не плутайте операцію присвоювання, що позначається у мові Python одиночним знаком "дорівнює", і операцію порівняння (два знаки "дорівнює"). Присвоєння і порівняння - зовсім різні операції.

Приклади роботи з логічними виразами на мові програмування Python (зауважте, що після символа # написані коментарі, їх можна вставляти в код, інтерпретатор їх ігнорує):
x == 4 # x дорівнює 4
x == 7 # x дорівнює 7
x != 7 # x не дорівнює 7
x != 4 # x не дорівнює 4
x > 5 # x більше 5
x < 5 # x менше 5
x >= 6 # x більше або дорівнює 6
x <= 6 # x менше або дорівнює 6
Визначте усно результати виконання операцій, наведених у прикладі вище. Перевірте правильність ваших припущень, виконавши дані вирази за допомогою інтерпретатора мови Python.

Складні логічні вирази

Логічні вирази типу x >= 1023 є простими. Однак, на практиці нерідко використовуються більш складні. Може знадобитися отримати відповіді "Так" або "Ні" залежно від результату виконання двох простих виразів. Наприклад, "на вулиці йде сніг або дощ", "змінна new більша 12 і менша 20" і т.п.

У таких випадках використовуються спеціальні оператори, що об'єднують два і більше простих логічних вирази. Широко використовуються два способи об'єднання: через, так звані, логічні І (and) та АБО (or).

Щоб отримати істину (True) при використанні оператора and, необхідно, щоб результати обох простих виразів, які пов'язує даний оператор, були істинними. Якщо хоча б в одному випадку результатом буде False (неправда), то і весь складний вираз буде хибним.

Щоб отримати істину (True) при використанні оператора or, необхідно, щоб результат хоча б одного простого виразу, що входить до складу складного, був істинним. У разі оператора or складний вираз стає помилковим (False) лише тоді, коли помилкові всі прості вирази, що його утворюють.

Приклади роботи зі складними логічними виразами на мові програмування Python (ще раз зауважуємо, що після символу # написані коментарі):
x = 8
y = 13
x == 8 and y < 15 # x дорівнює 8 та y менше 15
x > 8 and y < 15 # x більше 8 та y менше 15
x != 0 or y > 15 # x не дорівнює" 0 або y менше 15
x < 0 or y > 15 # x менше 0 або y менше 15
Визначте усно результати виконання операцій, наведених у вищевказаному прикладі. Перевірте правильність ваших припущень, виконавши дані вирази за допомогою інтерпретатора мови Python.

Практична робота

  1. Присвойте двом змінним будь-які числові значення.
  2. Складіть чотири складних логічних вирази за допомогою оператора and, два з яких повинні давати True, а два інших - False.
  3. Аналогічно виконайте п. 2, але вже використовуючи оператор or.
  4. Спробуйте використовувати у складних логічних виразах роботу зі змінними рядкового типу.
  5. Приблизний результат виконання практичної роботи
>>>num1 = 34
>>>num2 = 8.5
>>>num1 > 12 and num2 != 12
True
>>> num1 == 34 and num2 >= 8
True
>>> num1 != 34 and num2 != 12
False
>>> num1 <= 12 and num1 == 0
False
>>> num1 != 34 or num2 != 12
True
>>> num1 < 1 or num2 > 9.6
False
>>> str1 = "a"
>>> str2 = "b"
>>> str1 < "c" and str2 != "a"
True


Зміст курсу

Вступ
Урок 1. Історія мов програмування. Компіляція та інтерпретація
Урок 2. Знайомство з Python і середовищами програмування
Урок 3. Типи даних в програмуванні. Визначення змінної
Урок 4. Логічні вирази
Урок 5. Умовний оператор. Інструкція if
Урок 6. Множинне розгалуження
Урок 7. Цикл while
Урок 8. Введення даних з клавіатури
Урок 9. Рядки як послідовності символів
Урок 10. Списки - змінювані послідовності
Урок 11. Cловники
Урок 12. Цикл for
Урок 13. Функції
Урок 14. Параметри і аргументи функцій. Локальні та глобальні змінні
Урок 15. Перевірочна робота з основ програмування на Python

Коментарі

Популярні дописи з цього блогу

Азбука Морзе Українською

Python: Урок 3. Типи даних в програмуванні. Визначення змінної