상세 컨텐츠

본문 제목

Python NaN과 Null 차이

PYTHON/문법

by mk coding 2024. 3. 6. 20:57

본문

NaN과 Null은 모두 Python에서 값이 없는 것을 나타내는 특수 값이지만, 의미와 사용법에 차이가 있다. 

 

  1. NaN
    • NaN은 "Not a Number"의 약자로, 숫자 연산의 결과가 유효하지 않을 때 발생하는 값이다. 
    • 0으로 나누기, 로그 취하기, 제곱근 구하기 등의 경우 NaN을 사용할 수 있다. 
    • NaN은 숫자 타입(float)으로 취급된다.
    • 비교 연산자를 사용하여 NaN과 다른 값을 비교하면 False가 반환된다.
    • NaN은 수치 계산에 참여할 수 있으며, 계산 결과에 영향을 미칠 수 있다. 
  2. Null
    • Null은 값이 없는 것을 나타내는 특수 값이다.
    • 데이터베이스에서 값이 없는 필드를 나타내는 데 사용된다.
    • None이라는 값으로 표현된다.
    • Null은 NoneType이라는 타입으로 취급된다. 
    • 비교 연산자를 사용하여 Null과 다른 값을 비교하면 False가 반환된다.
    • Null은 수치 계산에 참여할 수 없으며, 계산 결과에 영향을 미치지 않는다.
  3. 예시 및 주요 차이점
# NaN 예시
print(0 / 0)  # NaN
print(math.log(-1))  # NaN

# Null 예시
x = None
print(x)  # None
print(type(x))  # <class 'NoneType'>

# 비교 연산 예시
print(NaN == 0)  # False
print(Null == 0)  # False

# 수치 계산 예시
print(NaN + 1)  # NaN
print(Null + 1)  # TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'