Python의 None, 빈 리스트, 미정의 변수 정리

김우진·2026년 9월 4일

크래프톤 정글

목록 보기
5/26

1. 빈 리스트 []

visited = []
  • visited는 빈 리스트
  • 변수는 정상적으로 존재함
  • 리스트에 아직 원소가 없는 상태
print(visited)          # []
print(len(visited))     # 0
print(visited is None)  # False

2. None

visited = None
  • visited라는 변수는 존재함
  • 변수에 None이라는 값이 들어 있음
  • 보통 아직 값이 정해지지 않음, 값이 없음을 표현할 때 사용
print(visited)          # None
print(visited is None)  # True

None은 초기화가 안 된 상태가 아니라,
값이 없음을 나타내는 특별한 값이다.


3. 변수를 아예 만들지 않은 경우

if visited:
    print("실행")

visited를 이전에 정의하지 않았다면:

NameError: name 'visited' is not defined

즉, 변수 자체가 없는 상태다.


4. 한눈에 비교

코드의미
visited = []빈 리스트
visited = None값이 없음을 나타내는 None
선언하지 않음변수 자체가 존재하지 않음

5. if에서의 동작

빈 리스트와 None은 둘 다 조건문에서 False처럼 취급된다.

visited = []

if visited:
    print("실행")

실행되지 않는다.

visited = None

if visited:
    print("실행")

이것도 실행되지 않는다.

bool([])    # False
bool(None)  # False

하지만 둘은 같은 값은 아니다.

[] == None      # False
[] is None      # False

6. None도 객체이자 값이다

Python에서 None은 단순히 "아무것도 없음"이 아니라 하나의 값(value) 이다.

또한 Python에서는 값들이 객체로 다뤄지기 때문에 None도 하나의 객체(object) 다.

x = None

print(type(x))
# <class 'NoneType'>

핵심

  • [] → 리스트는 존재하지만 비어 있음
  • None → 변수는 존재하지만 값이 없음을 표현
  • 미정의 변수 → 변수 자체가 존재하지 않음

또한 미정의 변수를 if visited:처럼 사용하면
False가 되는 것이 아니라 NameError가 발생한다.

0개의 댓글