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

안녕하세요. BlockDMask 입니다.

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

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

목차



1. 파이썬의 null은 None

num = None
print(num)

결과:

None

→ 파이썬에서는 null 대신 None을 사용합니다.




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

의미 참/거짓 평가 타입
None값이 없음FalseNoneType
0숫자 0Falseint
""빈 문자열Falsestr
[]빈 리스트Falselist
{}빈 딕셔너리Falsedict
False불리언 FalseFalsebool

→ 모두 False로 평가되지만 타입과 의미는 다릅니다.



3. == vs is 차이

a = None
b = None

print(a == b)
print(a is b)

결과:

True
True

→ None은 유일 객체라 값비교도, 객체비교도 True입니다.


x = 10
y = False

print(x == y)
print(x is y)

결과:

False
False

→ 값 자체가 다르므로 둘 다 False.




4. None 확인은 is None으로

result = None

if result is None:
    print("결과가 없습니다.")

결과:

결과가 없습니다.

→ None 비교는 항상 is None 사용을 권장합니다.




5. 함수에서 None을 기본값으로 사용

def greet(user=None):
    if user is None:
        print("안녕하세요, 손님!")
    else:
        print(f"{user}님, 반갑습니다!")

greet()
greet("BlockDMask")

결과:

안녕하세요, 손님!
BlockDMask님, 반갑습니다!

→ 인자가 없을 때 기본값으로 None을 사용하여 처리합니다.




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

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

check_input(None)
check_input("")
check_input("Python")

결과:

값이 None입니다.
빈 문자열입니다.
입력값: Python

→ None과 빈 문자열은 완전히 다르게 다룹니다.




7. 결론 정리

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


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

댓글

이 블로그의 인기 게시물

[Windows] 윈도우 CMD로 재부팅, 종료, 시간 설정하는 방법 (shutdown 명령어 정리)

[Python] 파이썬 주석 사용법 (한 줄 주석, 여러 줄 주석, 단축키, 들여쓰기 주의사항)