1 None을 왜 배워야 할까?
→ 파이썬에는 '값이 있지만 비어 있는 상태'와 '값 자체가 없는 상태'가 존재함
→ 0, '', [] 같은 값들은 비어 보이지만 실제 값이고, None은 '아직 값이 없다'라는 상태를 표현할 때 사용하는 것
2 None의 정의와 타입 (NoneType)
→ None은 값이 없는 상태를 표현하는 특별한 객체이며, 그 타입 이름은 NoneType
→ 파이썬 전체 프로그램에서 단 하나만 존재하며, 실무에서는 NoneType을 직접 다루지 않고 그냥 None을 사용함
1-1 코드
print(type(None)) # <class 'NoneType'>
1-1 결과

3 변수 초기화에서 None이 쓰이는 이유
→ 변수는 필요하지만 값은 아직 준비되지 않았을 때 사용하며, 값이 들어오면 그대로 대입하면 됨
2-1 코드
item = None
item = 'Apple'
print(item)
2-1 결과

4 함수와 None - 자동 반환 & 명시적 반환
1) return이 없어도 함수는 항상 None을 반환함
3-1 코드
def hello():
print('hi')
print(hello()) # hi 출력 후 None이 자동 반환
3-1 결과

2) 결과가 없음을 알릴 때 명시적으로 None 사용
3-2 코드
users = ['Tom', 'Andy']
def find_user(name):
if name in users:
return users[name]
return None
print(find_user('Aim'))
3-2 결과

5 None 비교 방법 - == 말고 is
→ ==은 값을 비교하고, is는 같은 객체인지 비교함
→ None은 프로그램 전체에서 하나만 존재하므로 is가 정확함
if x is None:
...
if x is not None:
...
6 Truthy / Falsy에서의 None
→ bool(None)은 False로 평가되어 조건문에서 거짓처럼 동작하지만 False와 같은 값은 아님
→ None은 동작 방식은 False와 비슷하지만 의미는 '값 없음'
if value:
...
else:
... # None이면 여기 실행
7 None vs 빈 값 - 가장 많이 헷갈리는 부분
→ None은 값 자체가 없음을 의미하며, 아직 정해지지 않은 값
→ 빈 값은 값은 있지만 비어 있음을 의미하며, '', [], {}, 0 등이 있음
4-1 코드
name = None
empty = ''
print(name is None) # True
print(empty is None) # False
4-1 결과

8 실전에서 가장 많이 쓰는 None 패턴
→ 선택적 파라미터 기본값에서 값 전달 여부를 명확히 구분하기 위해 사용함
→ 검색/조회 실패 시 반환값으로 '결과 없음'을 표현함
→ 나중에 채워질 값 초기화에 빈 칸 역할을 함
→ 값 존재 여부에 따라 분기할 때 기본 동작 vs 값 활용에서 사용함
→ 캐싱/초기화 여부 판단에서 한 번만 계산 후 재사용함
9 자주 하는 실수 & 올바른 습관
→ x == None 대신에 x is None을 사용하기
→ if not x:로 None을 판단하지 말고 if x is None:을 사용하기
→ print() 결과가 변수에 저장된다고 생각하지만 print의 반환값은 항상 None
→ None에 연산/메서드를 호출할 때 전에 x is not None을 사용하기
→ 기본 매개변수에 [] 같은 가변 객체를 사용할 때 tags=None으로 내부에서 생성하기
Python None에 대해 더 상세한 설명을 원하는 분들은 아래 사이트에 접속하기
Python None뿐만 아니라 다른 프로그래밍 언어에 대해 알고 싶은 분들은 아래 사이트에 접속하여 원하는 링크에 접속하기
'파이썬 > 변수와 데이터 타입' 카테고리의 다른 글
| 파이썬 타입 힌트(Type Hint) 완벽 정리 - 초보자가 꼭 알아야 할 핵심 개념부터 실전 사용 기준까지 (0) | 2026.01.13 |
|---|---|
| 파이썬 동적 타이핑 완벽 정리 : 변수, 객체, 타입 흐름, 실수 사례, 해결법까지 한번에 이해하기 (0) | 2025.12.08 |
| 파이썬 Boolean, 조건문 완전 정리 - True/False, 비교/논리 연산, in, None, 단축 평가까지 한 번에 이해하기 (0) | 2025.11.30 |
| 파이썬 문자열 완전정복 : split, join, replace, 정규표현식, 한글 깨짐, 디버깅까지 이것만 보면 끝! (0) | 2025.11.27 |
| 파이썬 형변환 완벽 가이드 : 타입 확인, 숫자 변환, 예외 처리, 자주 하는 실수까지 한 번에 정리 (0) | 2025.11.19 |