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