"NaN"とは"Not a Number"の略で、例えば「1/0」のような変な計算をしてしまった時に出力される。
このNaNの特徴として、「NaN = NaN」が「偽(False)」になる。
逆に言うと、「NaN is not NaN」が「真(True)」になる。NaNとは「自分が自分でないもの」なのである。
これを簡単にpythonで確認すると、
a = float('NaN') print( a /= a )
最近では「1/0」としてもZerroDividedErrorとして検出されてしまうので、NaNを出すのに逆に小技が必要なのはどこか面白く感じた。