Python Glossary English

все Python 3mathпонятие

math.isnan

проверка

Возвращает True, если число — NaN (Not a Number). Нельзя проверить через ==, так как nan != nan.

Синтаксис

math.isnan(x)

nan берётся не из деления на ноль (там ZeroDivisionError), а из float('nan'), разбора строки 'nan' во вводе и операций вроде math.inf - math.inf. Отдельная ловушка: оператор in и list.index сначала сравнивают объекты по идентичности, поэтому один и тот же объект nan «находится» в списке, хотя nan == nan ложно — искать и отфильтровывать nan надёжно только через math.isnan.

Примеры

import math
print(math.isnan(math.nan))  # → True
print(math.isnan(float('nan')))  # → True
print(math.isnan(42.0))  # → False
print(math.isnan(math.inf - math.inf))  # → True
print(math.isnan(0.0))  # → False
print(math.isnan(math.nan * 0))  # → True

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности