Тема 31(8): Величини логічного типу та операції над ними 

План вивчення теми:

Д/з: опрацювати:

Пригадайте, які типи даних нам уже відомі. Для цього застосуйте команду type() в інтерактивному режимі:

>>> type(5)

<class 'int'>

>>> type('зима')

<class 'str'>

Окрім уже відомих нам числового та рядкового типів даних у Python є логічний тип bool. 

Змінна типу bool може набувати одного з двох значень — True (Істина) або False (Хибність).

 

Якщо змінній надати значення True або False, це буде змінна типу bool:

>>> a = True

>>> print(a)

True

>>> type(а)

<class 'bool'>

x = 3<5

>>> print(x)

True

>>> type(x)

<class 'bool'>

Умова — це твердження, яке може бути істинним чи хибним.

Якщо твердження істинне, то вважається, що умова виконана. Перевірка умови повинна бути допустимою дією виконавця.

Умови в програмі записуються у вигляді логічних виразів.

Логічними є вирази, результатом яких є True або False.

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

Види умов :

Наприклад, х > 0  аnd х <10

Умова істинна, якщо x>=0 i x<=10.

Прості умови

Проста умова — це два вирази, з'єднані оператором порівняння. Простий логічний вираз (проста умова) утворюється за допомогою логічних операцій:

Приклад:

Змінній можна присвоїти значення логічного виразу, при цьому створюється змінна типу bool :

>> a=3<5

>>> a

True

Логічні операції працюють і у вікні консолі.


Складені умови

Складена умова — кілька простих умов, з'єднаних логічними операціями AND (логічне І, інакше — логічний добуток), OR (логічне АБО,  інакше — логічна сума), ХОR ((виключне АБО), NOT (логічне заперечення).

Наприклад, х >= 0  аnd х <= 10


Складені умови записуються у вигляді логічних виразів, які повертають True чи False в залежності від значень аргументів.

Логічну функцію прийнято задавати у вигляді таблиці істинності, вхідними значеннями якої є аргументи функції (значення змінних  для логічного виразу), а вихідними – відповідні значення логічної функції. 

Логічну операцію AND використовують, якщо необхідне одночасне виконання всіх умов

Логічну операцію OR використовують, якщо необхідне виконання хоча б однієї умови

Логічна операція NOT виконує заеперечення умови

Посилання на On-line-середовищe Python https://repl.it

Завдання 1:

Виконай подані приклади у вікні консолі, щоб ознайомитися з результатами обчислення логічних виразів:


3>=5


6 != 6


6 == 6


s = 10

s == 5 # Перевірка, чи s дорівнює 5


s > 1 # Перевірка, чи значення змінної s є більшим за 1


s >= 5


x = 5

(x>0) and (x<10)


x=-5

(x>0) and (x<10)


x=-5

(x<0) or (x>10)


a=3<5

print (a)

Приклади виконання деяких операцій порівняння та логічних операцій

Якщо потрібно визначити, чи належить точка з координатою Х відрізку [0; 10], то подвійну математичну нерівність  0≤х≤10

У Python можна записати як складену умову:  х >= 0  аnd х <= 10.

Умова істинна, якщо x>=0 i x<=10, тобто числове значення координати х одночасно більше 0 та менше 10.

Завдання 2:

Проаналізуй приклади складних умов.

not а <= 3 

— рівнозначне виразу а > 3;

age < 10 or age > 18 

— істинне тоді й тільки тоді, коли значення age розташовується в проміжку від 10 до 18 включно;

age >= 10 and age <= 18 

— істинне для всіх значень age, які не належать проміжку від 10 до 18.

>>> books =10

>>> books == 10 or books == 5 

#перевірка, чи дорівнює змінна books 10 або 5

>>> books =10

>>> books == 10 and books == 5 

#перевірка, чи дорівнює books одночасно 10 і 5

Задача 1. Дано три цілих числа: A, B, C. Скласти програму для перевірки істинності висловлювання: «Число B знаходиться між числами A і C». Необхідно врахувати обидва варіанти: A<C і A>C.


Програмний код:

a = int(input('a=?')

b = int(input('b=?')

c = int(input('c=?')

vidp = a<b and b<c or c<b and b<a

print ('Число B знаходиться мiж числами A i C -   ', vidp)


Приклад виконання програми:

a=?7

b=?5

c=?3

Число B знаходиться мiж числами A i C - True 

Нехай потрібно визначити, чи увійде в конверт з внутрішніми розмірами a і b мм прямокутна листівка з розмірами с і d мм. Для розміщення листівки в конверті необхідний проміжок в 1 мм з кожної сторони. Значення сторін листівки і конверту - цілі числа.

У Python така перевірка виглядатиме як складена умова:  ((c<a) or (c<b))   and   ((d<a) or (d<b))


У більш точно умова виглядатиме так:     ((c+1<=a) or (c+1<=b))   and   ((d+1<=a) or (d+1<=b))