How do I check if a value is NaN in Python?

I know that float(‘nan’) can be used to represent a NaN (Not a Number) value in Python, but I’m unsure how to check whether a given variable is actually NaN.

Using a comparison like x == float(‘nan’) doesn’t seem to work as expected. So what’s the correct and reliable way to check if a value is NaN in Python?

Would appreciate a clear explanation or example of how to handle this.

Hey! You’re right that comparing a variable directly to float(‘nan’) won’t work because NaN is never equal to itself. The most reliable way in Python is to use the math.isnan() function. For example:

import math

x = float('nan')
print(math.isnan(x))  # Output: True

This is the standard approach to Python nan checking, and it works perfectly for float values.

I ran into the same confusion before! Since NaN doesn’t equal anything (even itself), using x == float('nan') won’t work. Instead, use:

import math

if math.isnan(x):
    print("x is NaN")

This will correctly identify if x is NaN. So whenever you need to do a python is nan test, this is the way to go.

From experience, when you want to check if a variable is NaN in Python, using math.isnan() is the best and most foolproof method. Here’s a quick snippet:

import math

value = float('nan')
if math.isnan(value):
    print("Yep, it's NaN!")

This covers the typical use case for python is nan checks without running into issues with equality comparisons.