Попробуйте variable is False. False is 0 возвращает False,
Ответ 2
Если вы хотите проверить, что значение и тип используются одинаково:
x == y and type(x) == type(y)
В Python обычно избегают явных сопоставлений типов, подобных этому, но поскольку булевы являются подклассом целых чисел, это единственный выбор здесь.
x is y сравнивает идентификатор - два имени относятся к одному и тому же объекту в памяти. Булевы значения Python являются одиночными, поэтому это будет работать при их сравнении, но не будет работать для большинства типов.
Ответ 3
Вы можете использовать оператор is для проверки идентичности объекта. False is 0 вернет False тогда.
Ответ 4
Идти с определением Mathematica, здесь небольшая функция для выполнения задания. Сезон delta по вкусу:
def SameQ(pram1, pram2, delta=0.0000001):
if type(pram1) == type(pram2):
if pram1 == pram2:
return True
try:
if abs(pram1 - pram2) <= delta:
return True
except Exception:
pass
return False