<개인공부>/[Python]

[Python] 파이썬에서 None, null, is None 차이 정리

BlockDMask 2025. 4. 7. 09:07
반응형

안녕하세요. BlockDMask 입니다.

오늘은 파이썬에서 자주 혼동되는 값들,
None, null, 빈 문자열(""), 0, False, [], {}
그리고 비교 연산자인 is, ==에 대해 정리해보겠습니다.

특히 초보자들이 None과 빈 값들, 그리고 is None vs == None 차이를 헷갈려 하는 경우가 많습니다.
하나씩 정확하게 예제로 짚어보겠습니다.



1. 파이썬의 null은 None

a = None
print(a)  # None

설명: 파이썬에서는 null 대신 None을 사용합니다. 아무 값도 없다는 의미의 객체입니다.



2. None, 0, "", [], {} 차이점

의미 참/거짓 평가 타입
None 값이 없음 False NoneType
0 숫자 0 False int
"" 빈 문자열 False str
[] 빈 리스트 False list
{} 빈 딕셔너리 False dict
False 불리언 false False bool

설명: 모두 False로 평가되지만, 타입과 의미는 각각 다릅니다.



3. == vs is 차이

a = None
b = None

print(a == b)  # True
print(a is b)  # True

설명: ==는 값이 같은지, is는 동일 객체인지 비교합니다. None은 유일 객체이므로 둘 다 True.

 

x = 0
y = False

print(x == y)  # True
print(x is y)  # False

설명: 값은 같지만 객체는 다릅니다. 0은 int, False는 bool입니다.



4. None 확인은 is None으로

value = None

if value is None:
    print("값이 없습니다.")

설명: None 여부는 is None으로 확인하는 것이 공식 가이드입니다.



5. 실전 예제 - 함수에서 None을 기본값으로 사용

def greet(name=None):
    if name is None:
        print("이름이 없습니다.")
    else:
        print(f"{name}님, 안녕하세요!")

greet()              # 이름이 없습니다.
greet("BlockDMask")  # BlockDMask님, 안녕하세요!

설명: 인자가 없는 경우 기본값 None으로 처리하고, 조건 분기로 출력 내용을 구분합니다.



6. 빈 문자열 vs None 구분하기

def check(value):
    if value is None:
        print("None 입니다.")
    elif value == "":
        print("빈 문자열입니다.")
    else:
        print("값이 있습니다:", value)

check(None)
check("")
check("Python")

설명: None""는 명확히 구분되며, 조건문에서 다르게 처리할 수 있습니다.



7. 결론 정리

비교 항목 의미 사용 예시
None 값이 없음 if a is None
"" 빈 문자열 if a == ""
0 숫자 0 if a == 0
== 값 비교 if a == b
is 객체 비교 if a is b
is None None 여부 확인 권장 방식



이상, 파이썬의 None, null, is None 차이에 대해 정리해보았습니다.
오늘도 읽어주셔서 감사합니다.

반응형