반응형
안녕하세요. 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 차이에 대해 정리해보았습니다.
오늘도 읽어주셔서 감사합니다.
반응형
'<개인공부> > [Python]' 카테고리의 다른 글
[Python] 파이썬 range()의 숨겨진 기능들 (0) | 2025.04.05 |
---|---|
[Python] 파이썬 클래스 변수 vs 인스턴스 변수 차이 (0) | 2025.04.03 |
[Python] 파이썬 클래스 초보자 가이드 (__init__, self) (1) | 2025.04.01 |
[Python] 파이썬에서 날짜 다루기 (datetime 기본부터 실전까지) (0) | 2025.03.31 |
[Python] 파이썬 리스트 컴프리헨션 vs for문 (0) | 2025.03.29 |
[Python] 파이썬 *args와 **kwargs 알아보기 (0) | 2025.03.27 |
[Python] 파이썬에서 파일 경로 다루기 (`os` vs `pathlib`) (0) | 2025.03.25 |
[Python] 파이썬 zip() 함수 활용법 (0) | 2025.03.23 |