Тема 31(8): Величини логічного типу та операції над ними
План вивчення теми:
Б
Д/з: опрацювати:
§6.7
веб-сторінку уроку 31
Пригадайте, які типи даних нам уже відомі. Для цього застосуйте команду 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 виконує заеперечення умови
Завдання 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))