or의 역할

Tasker_Jang·2026년 3월 20일

1. 기본 개념 — 논리 연산자로서의 or

or은 기본적으로 논리 연산자입니다. 두 값 중 하나라도 TrueTrue를 반환합니다.

True  or True   # → True
True  or False  # → True
False or True   # → True
False or False  # → False

2. Python or의 진짜 동작 방식

Python의 or은 단순히 True/False를 반환하는 게 아닙니다. 실제 값 자체를 반환합니다.

왼쪽이 truthy하면 왼쪽을 반환, falsy하면 오른쪽을 반환

"hello" or "world"  # → "hello"  (왼쪽이 truthy → 왼쪽 반환)
""      or "world"  # → "world"  (왼쪽이 falsy  → 오른쪽 반환)
None    or "world"  # → "world"  (왼쪽이 falsy  → 오른쪽 반환)
0       or "world"  # → "world"  (왼쪽이 falsy  → 오른쪽 반환)

3. falsy한 값들

Python에서 False로 취급되는 값들입니다.

None    # 없음
""      # 빈 문자열
0       # 숫자 0
[]      # 빈 리스트
{}      # 빈 딕셔너리
False   # False

이 외의 값들은 전부 truthy합니다.


4. 기본값 지정 패턴

or의 가장 많이 쓰이는 패턴입니다. "값이 없으면 기본값을 써라" 라는 의미로 사용합니다.

cell or ""
# "cell에 값이 있으면 cell을, 없으면(None이면) 빈 문자열을 써라"

if/else로 풀어쓰면 이것과 동일합니다.

# or 방식
cell or ""

# if/else 방식
cell if cell else ""

결과는 같지만 or이 훨씬 간결합니다.


5. 실전 활용 예시

# None 대신 빈 문자열
name = None
print(name or "이름 없음")   # → "이름 없음"

# 빈 리스트 대신 기본 리스트
items = []
print(items or ["기본값"])   # → ["기본값"]

# 0 대신 기본값
count = 0
print(count or 10)           # → 10

6. and와 비교

or과 반대로 and왼쪽이 falsy하면 왼쪽을 반환, truthy하면 오른쪽을 반환합니다.

# or — 왼쪽이 falsy하면 오른쪽
None    or  "기본값"   # → "기본값"
"값"    or  "기본값"   # → "값"

# and — 왼쪽이 truthy하면 오른쪽
None    and "기본값"   # → None
"값"    and "기본값"   # → "기본값"

7. 핵심 정리

상황결과
truthy or anything왼쪽 반환
falsy or anything오른쪽 반환
falsy한 값
None, "", 0, [], {}, False

한 줄 요약: Python의 orTrue/False를 반환하는 것이 아니라 실제 값 자체를 반환하며, 값 or 기본값 패턴으로 None이나 빈 값을 대체할 때 자주 사용합니다.

참고)

or 결과and 결과
truthy or truthy왼쪽 반환오른쪽 반환
truthy or falsy왼쪽 반환오른쪽 반환
falsy or truthy오른쪽 반환왼쪽 반환
falsy or falsy오른쪽 반환왼쪽 반환

예시로 보면:

코드결과
"a" or "b""a"
"a" or None"a"
None or "b""b"
None or NoneNone
"a" and "b""b"
"a" and NoneNone
None and "b"None
None and NoneNone

핵심 규칙:

  • or첫 번째 truthy 값 반환, 없으면 마지막 값
  • and첫 번째 falsy 값 반환, 없으면 마지막 값
profile
ML Engineer 🧠 | AI 모델 개발과 최적화 경험을 기록하며 성장하는 개발자 🚀 The light that burns twice as bright burns half as long ✨

0개의 댓글