Как правильно сравнивать на равенство в Python?
Операция == - это сравнение значений, а is - это сравнение ссылок внутри памяти. Если значения равны через ==, но не равны через is - они просто хранятся в разных ячейках памяти.
То есть, ==  отвечает на вопрос, равны ли объекты? А is отвечает на вопрос - это один и тот же объект?
Посему, c is можете сравнивать типы, None, False, True, а с переменными используйте ==
a is b эквивалентно id(a) == id(b)