Python Glossary English

Python 3.5+mathпонятие

math.nan

константы

Not a Number — специальное значение float для результата неопределённых операций. Не равно самому себе: nan != nan.

Синтаксис

math.nan

Проверять nan можно только через math.isnan(x): любое сравнение с ним ложно, поэтому условие x == math.nan не сработает никогда. Он ещё и заразен — любая арифметика с nan даёт nan, а сортировка или min/max по списку с nan возвращает мусорный порядок, потому что сравнения перестают быть согласованными. Отдельная ловушка: math.nan in [math.nan] даёт True, так как контейнеры сначала сверяют объекты по identity, а float('nan') in [float('nan')] уже False.

Примеры

import math
print(math.nan)  # → nan
print(math.isnan(math.nan))  # → True
print(math.nan == math.nan)  # → False (!)
print(math.nan + 1)  # → nan
print(float('nan'))  # → nan
print(math.isnan(0.0))  # → False

См. также

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