У мові програмування Python для перевірки, чи мають два об’єкти однакові значення, використовуються оператори “не дорівнює” та “дорівнює”. У цьому посібнику ми розглянемо їх застосування з детальними прикладами.
Ви ознайомитесь із:
- синтаксисом оператора нерівності (
!=
) та його використанням; - синтаксисом оператора рівності (
==
) з наочними прикладами; - застосуванням операторів
is
таis not
для визначення ідентичності двох об’єктів Python.
Розпочнімо!
Оператор “не дорівнює” в Python: синтаксис
Для будь-яких двох об’єктів Python, obj1
та obj2
, загальний синтаксис використання оператора нерівності виглядає так:
<obj1> != <obj2>
- Результатом буде
True
, якщо значенняobj1
таobj2
не збігаються; - і
False
в іншому випадку.
Зауважте, що obj1
і obj2
можуть представляти собою цілі числа, числа з плаваючою комою, рядки, списки та інші типи даних.
Приклади використання оператора “не дорівнює”
Розглянемо декілька прикладів, щоб глибше зрозуміти роботу оператора нерівності.
Порівняння з оператором “не дорівнює”
Ось перший приклад:
num1 = 27 num2 = 3 * 9 num1 != num2 # Результат: False
Ви можете виконувати ці приклади безпосередньо в онлайн IDE Python, або ж локально.
Оскільки num1
дорівнює 27, а num2
також дорівнює 27 (3 * 9 = 27), значення num1
та num2
збігаються. Тому оператор !=
повертає False
.
Розглянемо інший випадок.
У наступному прикладі num1
має значення 7, а num2
– рядкове представлення числа 7. Оскільки вони належать до різних типів даних, оператор нерівності поверне True
.
num1 = 7 num2 = "7" num1 != num2 # Результат: True
Якщо перетворити рядок на ціле число, отримаємо:
num1 = 7 num2 = int("7") num1 != num2 # Результат: False
Тепер ви бачите, що результат є False
, оскільки num1
і num2
обидва представляють ціле число 7.
Оператор нерівності також можна використовувати з колекціями даних Python, такими як списки, кортежі та множини.
Важливо: Для колекцій, наприклад, списків, оператор !=
перевіряє значення кожного елемента. Тобто два списки, list1
і list2
, довжиною n, вважаються рівними лише за умови, що list1[i] == list2[i]
для всіх i
у діапазоні від 0 до n-1.
Ось приклад:
list1 = [2, 4, 6, 8] list2 = [2, 4, 6, 9] list1 != list2 # Результат: True
У цьому прикладі list1
і list2
відрізняються лише одним елементом. Тому оператор !=
повертає True
, що є очікуваним результатом.
Використання оператора “не дорівнює” в умовних виразах
Оператор “не дорівнює” часто застосовується в умовних виразах Python.
Наприклад, код нижче показує, як перевірити, чи є число непарним.
Число вважається непарним, якщо воно не ділиться на 2 без остачі. Це можна перевірити за допомогою умови num % 2 != 0
.
num = 7 if (num % 2 != 0): print("Число є непарним.") else: print("Число є парним.") # Результат: Число є непарним.
Умови також можна застосовувати у генераторах списків, коли потрібно зберегти лише ті елементи, які відповідають певним критеріям. У наступному прикладі odd_10
– це список всіх непарних чисел менших за 10.
odd = [num for num in range(10) if num % 2 != 0] print(odd) # Результат: [1, 3, 5, 7, 9]
На цьому розгляд оператора нерівності (!=
) завершено. ✅
Оператор “дорівнює”, як ви вже, напевно, здогадалися, виконує протилежну функцію.
Далі ми поговоримо про нього детальніше.
Оператор “дорівнює” в Python: синтаксис
Синтаксис використання оператора рівності в Python виглядає наступним чином:
<obj1> == <obj2> #де <obj1> і <obj2> - дійсні об'єкти Python
- Оператор повертає
True
, якщо значенняobj1
іobj2
є ідентичними, - інакше повертає
False
.
Приклади використання оператора “дорівнює”
Оператор рівності (==
) використовується аналогічно до оператора нерівності.
Розглянемо наступні приклади:
- перевірка на рівність двох рядків;
- перевірка, чи є число парним;
- застосування в умовних виразах при генерації списків.
Порівняння з оператором “дорівнює”
У наведеному нижче прикладі рядки str1
і str2
ідентичні за своїм значенням, тому оператор рівності (==
) повертає True
.
str1 = "coding" str2 = "coding" str1 == str2 # Результат: True
Давайте тепер використаємо оператор рівності в умовному виразі.
Зауважте, що число, яке ділиться на 2 без остачі, є парним. У коді це зводиться до умови num % 2 == 0
.
num = 10 if (num % 2 == 0): print("Число є парним.") else: print("Число є непарним.") # Результат: Число є парним.
Тепер застосуємо генератор списків Python для отримання всіх парних чисел, менших за 10.
even_10 = [num for num in range(10) if num % 2 == 0] print(even_10) # Результат: [0, 2, 4, 6, 8]
У цьому прикладі:
range(10)
повертає об’єкт діапазону, що дозволяє отримати усі цілі числа від 0 до 9.- Умова
num % 2 == 0
є істинною тільки для парних чисел. - Таким чином,
even_10
є списком усіх парних чисел менших за 10.
Наразі ви навчилися перевіряти рівність за допомогою операторів “не дорівнює” (!=
) та “дорівнює” (==
).
Далі ви дізнаєтеся, як перевірити ідентичність двох об’єктів Python.
Як використовувати оператори is
та is not
у Python
Якщо ви новачок у програмуванні на Python, вас може збентежити різниця між операторами ==
та is
. Розберемо це у цьому розділі.
У попередньому розділі ми бачили приклад, де str1
і str2
були рівними, і оператор ==
повертав True
.
Тепер виконайте наступний код.
str1 = "coding" str2 = "coding" str1 is str2 # Результат: False
Як бачите, вираз str1 is str2
повертає False
.
З’ясуємо, що саме робить оператор is
у Python.
Оператор is
застосовується до будь-яких двох об’єктів Python.
Він повертає True
, тільки якщо два об’єкти ідентичні, тобто вони посилаються на один і той самий об’єкт у пам’яті.
Незважаючи на те, що str1
дорівнює str2
, вираз str1 is str2
повертає False
, оскільки вони посилаються на два різні об’єкти в пам’яті. Тому вони мають різні ідентичності.
У Python для отримання ідентифікатора об’єкта можна використовувати функцію id()
.
▶ Виконайте наступний код для отримання ідентифікаторів str1
і str2
.
id(str1) # Приклад результату: 139935398870320 id(str2) # Приклад результату: 139935398871344
Як бачимо, str1
та str2
мають різні ідентифікатори. Тому вираз str1 is str2
повертає False
.
Отже:
<obj1> is <obj2> # повертає True, якщо і тільки якщо id(<obj1>) == id(<obj2>) # повертає True
Перевіримо це:
str1 = "coding" str2 = str1 print(str1 is str2) print(id(str1) == id(str2)) # Результат True True
Інтуїтивно зрозуміло, що оператор is not
є протилежним до оператора is
.
Оператор is not
застосовується до будь-яких двох об’єктів Python.
Він повертає False
лише в тому випадку, коли два об’єкти ідентичні, тобто вони посилаються на той самий об’єкт у пам’яті. В інших випадках він повертає True
.
У наведених вище прикладах спробуйте замінити is
на is not
і перевірити результати.
Висновок 👩💻
Сподіваюся, цей посібник був корисним для вас.
Підсумуємо, ви дізналися:
- як використовувати оператори “дорівнює” (
==
) та “не дорівнює” (!=
) для перевірки, чи мають два об’єкти Python однакові значення; - різницю між рівністю та ідентичністю об’єктів Python;
- як оператори
is
таis not
допомагають перевірити ідентичність двох об’єктів Python.
Дізнайтеся, як розрахувати різницю в часі або створити гру «змійка» на Python тут.
До зустрічі у наступних посібниках. Насолоджуйтеся навчанням та програмуванням! 🎉