Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Ідентичність проти рівності | Булеві Значення та Порівняння
Типи Даних у Python

bookІдентичність проти рівності

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

Що таке is?

  • is перевіряє ідентичність об'єкта — чи дві змінні вказують на той самий об'єкт у пам'яті;
  • == перевіряє рівність значень — чи мають два об'єкти однаковий вміст.
1234567
a = [1, 2] b = [1, 2] c = a print(a == b) # True - same contents print(a is b) # False - different list objects print(a is c) # True - c refers to the very same list as a
copy

Коли використовувати is і коли уникати його

  • Використовуйте is для порівняння з синглтонами, такими як None;
123
value = None if value is None: print("No value")
copy
  • is not — це перевірка ідентичності з запереченням;
123
var = 64 if var is not None: print("var has a value: ", var)
copy
  • Уникайте використання is для перевірки рівності між числами або рядками. Через внутрішнє кешування/інтернування ідентичність може іноді "працювати", але це ненадійно між різними запусками та середовищами, використовуйте == замість цього;
123456789
x = 256 y = 256 print(x == y) # True (same value) print(x is y) # May appear True; do not rely on identity here s1 = "hello" s2 = "he" + "llo" print(s1 == s2) # True print(s1 is s2) # Implementation detail; avoid using is here
copy
  • Для булевих значень надавайте перевагу перевірці істинності.
123
flag = True if flag: # clearer than: if flag is True print("flag is True")
copy

1. Заповніть пропуски: використовуйте is або ==:

2. Який правильний спосіб перевірити на «відсутність значення»?

3. Яке твердження є рекомендованим?

question-icon

Заповніть пропуски: використовуйте is або ==:

Use to check if two variables point to the same object.
Use
to check if two values have the same contents.

Натисніть або перетягніть елементи та заповніть пропуски

question mark

Який правильний спосіб перевірити на «відсутність значення»?

Select the correct answer

question mark

Яке твердження є рекомендованим?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 3

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Suggested prompts:

Can you explain more about why using `is` with numbers or strings is unreliable?

When should I use `==` instead of `is` in my code?

Can you give more examples of identity vs equality in Python?

Awesome!

Completion rate improved to 5

bookІдентичність проти рівності

Свайпніть щоб показати меню

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

Що таке is?

  • is перевіряє ідентичність об'єкта — чи дві змінні вказують на той самий об'єкт у пам'яті;
  • == перевіряє рівність значень — чи мають два об'єкти однаковий вміст.
1234567
a = [1, 2] b = [1, 2] c = a print(a == b) # True - same contents print(a is b) # False - different list objects print(a is c) # True - c refers to the very same list as a
copy

Коли використовувати is і коли уникати його

  • Використовуйте is для порівняння з синглтонами, такими як None;
123
value = None if value is None: print("No value")
copy
  • is not — це перевірка ідентичності з запереченням;
123
var = 64 if var is not None: print("var has a value: ", var)
copy
  • Уникайте використання is для перевірки рівності між числами або рядками. Через внутрішнє кешування/інтернування ідентичність може іноді "працювати", але це ненадійно між різними запусками та середовищами, використовуйте == замість цього;
123456789
x = 256 y = 256 print(x == y) # True (same value) print(x is y) # May appear True; do not rely on identity here s1 = "hello" s2 = "he" + "llo" print(s1 == s2) # True print(s1 is s2) # Implementation detail; avoid using is here
copy
  • Для булевих значень надавайте перевагу перевірці істинності.
123
flag = True if flag: # clearer than: if flag is True print("flag is True")
copy

1. Заповніть пропуски: використовуйте is або ==:

2. Який правильний спосіб перевірити на «відсутність значення»?

3. Яке твердження є рекомендованим?

question-icon

Заповніть пропуски: використовуйте is або ==:

Use to check if two variables point to the same object.
Use
to check if two values have the same contents.

Натисніть або перетягніть елементи та заповніть пропуски

question mark

Який правильний спосіб перевірити на «відсутність значення»?

Select the correct answer

question mark

Яке твердження є рекомендованим?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 3
some-alt