все 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Сообщить о неточности