В подорожі №8 ви дізналися, що в операторах if використовується логічний вираз. Логічний вираз будується за допомогою операції співвідношення (== != >= <= < > in). Для зручності назвемо такий вираз простий. В цій подорожі навчимося будувати логічні вирази, що складаються із простих логічних виразів та логічних операцій і назвемо їх складеними. Що таке прості логічні вирази зрозуміло, а що таке логічні операції треба розібратися. Отже, розглянемо логічні операції or and not
Якщо Ви на дистаційному навчанні рекомендовано переглянути відео
Припустимо, що із двох логічних виразів вираз1 та вираз2 необхідно побудувати складний логічний вираз за допомогою логічної операції or.
Розглянемо таблицю результатів складного виразу в залежності від значень виразу1 та виразу2.
| Вираз1 | Вираз2 | Результат |
|---|---|---|
| True | True | True |
| True | False | True |
| False | True | True |
| False | False | False |
Це означає, що у випадку, коли хоча б один з виразів матиме значення True, результат буде True і тільки тоді коли всі умови False, результат буде False.
Побудуємо діалог який має запросити у користувача e-mail або номер телефона для подальшої роботи. У випадку, коли щось одне збігається з даними бази(наприклад e-mail:test@i.ua телефон: 555-55-55), то користувач отримує дозвіл. У випадку, коли не збігається ні телефон ні електронна скринька, має бути відмова.
# ідентифікація користувача e-mail або телефон
login = input('Введіть e-mail або номер телефону ')
if login == '555-55-55' or login == 'test@i.ua':
print('Аутентифікацію пройдено успішно')
else:
print('Невірно вказані дані')
Припустимо, що із двох логічних виразів вираз1 та вираз2 необхідно побудувати складний логічний вираз за допомогою логічної операції and.
Розглянемо таблицю результатів складного виразу в залежності від значень виразу1 та виразу2.
| Вираз1 | Вираз2 | Результат |
|---|---|---|
| True | True | True |
| True | False | False |
| False | True | False |
| False | False | False |
Це означає, що у випадку, коли хоча б один з виразів матиме значення False, результат буде False і тільки тоді коли всі умови True, результат буде True.
Побудуємо діалог який має запросити у користувача логін та пароль для подальшої роботи. У випадку, коли логін та пароль збігається зареєстрованими(наприклад логін:user, пароль:1111), то користувач отримує дозвіл. У випадку, коли логін або пароль не збігається, має бути відмова.
# ідентифікація користувача за логіном та паролем
login = input('Введіть логін ')
password = input('Введіть пароль ')
if login == 'user' and password == '1111':
print('Аутентифікацію пройдено успішно')
else:
print('Логін або пароль не зареєстровано')
Заперечує результат логічного виразу. Якщо логічний вираз має значення True, то not (логічний вираз) буде мати значення False. І навпаки: якщо логічний вираз має значення False, то not логічний вираз буде мати значення True.
| Вираз | not Вираз |
|---|---|
| True | False |
| False | True |
Дано x
Підрахувати вираз y = 5/x.
Дріб розраховується тільки у випадках коли знаменник не дорівнює 0.
# приклад використання not
x = float(input("x="))
if not x == 0:
y = 5/x
print("y = ",y)
else:
print("Ділення на 0 неможливе")
not x == 0 можна було б замінити x != 0. Але, для прикладу можливо і таке.
Для того, щоб будувати логічні вирази треба пам'ятати про пріоритети операцій і те, що пріоритети можливо замінити використанням дужок.
Логічні операції мають такі пріоритети:
Для групування логічних виразів використовують дужки. Тоді операції в дужках виконуються в першу чергу.
not True and False результат - false, т.я спочатку виконується not потім and
not (True and False) результат - True т.я спочатку виконується and потім not
Дано: ціле число х. Код програми має перевірити чи належить число x діапазону (–5, 3).
Дано три цілих числа a,b,c. Знайти найбільше серед них.