Дрон Кодер — программирование для детей и взрослых в игровой форме. Начать бесплатно

== или is: в чём разница

Оба оператора сравнивают, но по-разному. Путаница между ними — классическая ошибка новичка.

== сравнивает значения

Оператор == проверяет, равны ли значения. Например, 2 == 2.0 — истина, потому что числа равны по значению. В большинстве случаев для сравнения вам нужен именно ==: чисел, строк, списков.

is сравнивает объекты

Оператор is проверяет, один и тот же ли это объект в памяти, а не просто равны ли значения. Два разных списка с одинаковым содержимым равны по ==, но не тождественны по is — это разные объекты.

Когда нужен is

is уместен в проверках на None: пишут x is None, а не x == None. Также is используют для True и False. Во всех остальных сравнениях по смыслу почти всегда правильный выбор — ==.

Почему возникает путаница

Иногда is «случайно» срабатывает для маленьких чисел и коротких строк из-за внутренней оптимизации Python — и новичок делает неверный вывод. Не полагайтесь на это. Правило простое: значения — ==, тождество и None — is.

Частые вопросы

Как проверить, что переменная пустая (None)? Пишите if x is None.

Можно ли сравнивать строки через ==? Да, для строк == сравнивает их содержимое — это правильно.

Начать игру бесплатно
Попробуй прямо здесь
Уровень 1

Задание

Все обучающие игры «Дрон Кодер»

Одна вселенная — много модулей. Программирование, математика и логика в одной игре: пиши код, считай, решай задачи — а дрон-фермер летит по полю и собирает урожай. В каждом модуле первый уровень бесплатный, без регистрации.

📈 Математика · алгебра и графики
📖 Русский язык