вівторок, 6 квітня 2021 р.

ЛОГІЧНИЙ ТИП ДАНИХ (Інформатика - 8 кл.)

 

Логічний тип даних у мові Python

     Часто в реальному житті ми погоджуємося з будь-яким твердженням або заперечуємо його. Наприклад, якщо вам скажуть, що сума чисел 3 і 5 більше 7, ви погодитеся, скажете: «Так, це правда». Якщо ж хтось буде стверджувати, що сума трьох і п'яти менше семи, то ви розціните таке твердження як помилкове.

Подібні фрази припускають тільки два можливих відповіді - або "так", коли вираз оцінюється як правда, істина, або "ні", коли твердження оцінюється як помилкове, хибне. У програмуванні та математиці якщо результатом обчислення виразу може бути лише істина або неправда, то такий вислів називається логічним.

 Логічні вирази

Крім арифметичних операцій, зі школи нам відомі операції порівняння. Наприклад, 5 > 4. Це звучить як питання: «5 більше 4?». В даному випадку відповідь «так». В інших випадках відповіддю може бути «ні» (наприклад, для 3 < 1).

Операції порівняння не мають прив'язки до чисел. Порівнювати можна практично все що завгодно, наприклад, рядки. Кожен раз, коли ми входимо на якийсь сайт, всередині відбувається порівняння введених логіна і пароля з тими, які є в базі. І тільки якщо вони є, нас пускають всередину.

Мови програмування пристосували для своїх потреб всі математичні операції порівняння практично в незмінному вигляді. Єдина серйозна відмінність - оператори рівності і нерівності. В математиці для цього використовується звичайне одно =, але в програмуванні таке зустрічається не часто. У багатьох мовах символ = використовується для присвоювання значень змінним, тому для порівняння в Python взяли подвійний значок ==.

Наприклад, вираз 4 > 5 є логічним, так як його результатом є або правда, або неправда. Вираз 4 + 5 не є логічним, так як результатом його виконання є число.

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

У програмуванні False зазвичай прирівнюють до нуля, а True - до одиниці.

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

 Список операцій порівняння:

  • <    — менше
  • <=  — менше або дорівнює (не більше)
  • >    —  більше
  • >=  — більше або дорівнює (не менше)
  • ==  — дорівнює
  • !=   — не дорівнює

Ці операції можна застосувати не тільки до чисел. Наприклад, за допомогою оператора рівності можна порівняти рядки:

password == text - це порівняння ідентичності рядків, записаних в різних змінних.

Логічна операція типу 5 > 4 або password == text - це вираз, і його результат - спеціальне значення True («істина») або False («неправда»). Це новий для нас тип даних - bool.

Поряд з рядками (str) і цілими і дробовими числами, тип bool (логічний) - це один з простих типів даних в Python.

Визначення:

• Логічний тип (bool) - тип даних з двома можливими значеннями: True (істина) і False (брехня).

 

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

Не плутайте операцію присвоювання значення змінної, що позначається в мові Python одиничним знаком "дорівнює", і операцію порівняння (два знаки "дорівнює"). Присвоєння і порівняння - різні операції.

Наприклад:
>>> a = 10
>>> b = 5
>>> a + b > 14
True
>>> a < 14 - b
False
>>> a <= b + 5
True
>>> a != B
True
>>> a == b
False
>>> c = a == b
>>> a, b, c
(10, 5, False)

В даному прикладі вираз c = a == b складається з двох підвиразів. Спочатку відбувається порівняння (==) змінних a і b. Після цього результат логічної операції присвоюється змінної c. Вираз a, b, c просто виводить значення змінних на екран.

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

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

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

-       логічне множення (логічне І (and))

-       логічне додавання (логічне АБО (or))

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

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

Припустимо, змінній x було присвоєно значення 8 (x = 8), змінній y привласнили 13 (y = 13). Логічний вираз y < 15 and x > 8 буде виконуватися наступним чином. Спочатку виконається вираз y < 15. Його результатом буде True. Потім виконається вираз x > 8. Його результатом буде False. Далі вираз зведеться до True and False, що поверне False.

 >>> x = 8

>>> y = 13

>>> y < 15 and x > 8

False

 Якби ми записали вираз так: x > 8 and y <15, то воно також повернуло б False. Однак порівняння y < 15 не виконувалося б інтерпретатором, так як його нема чого виконувати. Адже перше просте логічне вираження (x > 8) вже повернуло неправда, яка, в разі оператора and, перетворює увесь вираз в неправду.

У випадку з оператором or другий простий вираз перевіряється, якщо перший повернув неправду, і не перевіряється, якщо вже перший повернуло істину. Так як для істинності всього висловлювання досить єдиного True, неважливо по яку сторону від оператора or.

 

Немає коментарів:

Дописати коментар