[Python] 파이썬에서 None, null, is None 차이 정리
안녕하세요. BlockDMask 입니다.
오늘은 파이썬에서 자주 혼동되는 값들, 즉 None, null, 빈 문자열(""), 0, False, [], {} 그리고 비교 연산자인 is, ==에 대해 정리해보겠습니다.
특히 초보자들이 None과 빈 값들, 그리고 is None vs == None 차이를 헷갈려 하는 경우가 많습니다.
하나씩 정확하게 예제로 짚어보겠습니다.
목차
- 1. 파이썬의 null은 None
- 2. None, 0, "", [], {} 차이점
- 3. == vs is 차이
- 4. None 확인은 is None으로
- 5. 함수에서 None을 기본값으로 사용
- 6. 빈 문자열 vs None 구분하기
- 7. 결론 정리
1. 파이썬의 null은 None
num = None
print(num)
결과:
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)
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 | 숫자 0 | if a == 0 |
| == | 값 비교 | if a == b |
| is | 객체 비교 | if a is b |
| is None | None 확인 | 권장 방식 |
이상으로 파이썬의 None, null, is None 차이에 대해 정리해보았습니다.
오늘도 읽어주셔서 감사합니다!
댓글
댓글 쓰기