Глава 9 · Выполняй мою команду!
is против ==
Два похожих оператора спрашивают о совершенно разных вещах — и есть ровно один правильный повод использовать is прямо сейчас.
Два разных вопроса
== и is выглядят похоже, но
спрашивают о совершенно разном:
==
«Равны ли ЗНАЧЕНИЯ?»
is
«Это ОДИН И ТОТ ЖЕ объект?»
Главное практическое применение — None
В подавляющем большинстве случаев для чисел, строк и вообще обычных сравнений нужен
именно ==. Правильное и по-настоящему важное применение
is на этом этапе — проверка на None:
is_none.py
value = None
print(value is None) # True — правильный способ
print(value is not None) # False
Почему не value == None
Технически
value == None в большинстве случаев тоже сработает — но is None считается более правильным стилем в Python: он однозначно спрашивает «это именно None?», а не «равно ли значение чему-то, что ведёт себя как None?». Договоримся всегда использовать is None / is not None.Не используйте is для чисел и строк
256 is 256 или "a" is "a" могут вести себя неожиданно — их результат зависит от внутренних деталей реализации Python, которые не гарантированы и могут отличаться в разных ситуациях. Это не то, чему стоит учиться сейчас: для сравнения значений всегда используйте ==. Идея «сравнение по объекту» подробно вернётся в главе про ООП.Практика: is против ==
Интерактивный ноутбук прямо в браузере — Python 3.14 через Pyodide, без установки