동빈나 채널의 파이썬 문법 부수기 유튜브 강의를 참고하여 정리한 내용이다.
파이썬의 불리언(Boolean) 자료형은 참(True)과 거짓(False) 두 값만 갖는다.
단순해 보이지만 파이썬에서는 int의 서브클래스라는 특성 때문에 다른 언어와 다르게 동작하는 부분이 있어 정리해둔다.
기본 사용
a = True
b = False
print(type(a)) # <class 'bool'>
print(a, b) # True False
파이썬에서 True와 False는 반드시 첫 글자를 대문자로 써야 한다.
true, false는 변수명으로 취급되어 NameError가 발생한다.
print(true) # NameError: name 'true' is not defined
print(false) # NameError: name 'false' is not defined
bool은 int의 서브클래스
파이썬의 bool은 int를 상속한다. True는 1, False는 0과 동일하게 동작한다.
print(True == 1) # True
print(False == 0) # True
print(True + True) # 2
print(True * 5) # 5
print(False + 1) # 1
이 특성 덕분에 코딩테스트에서 조건을 만족하는 원소 개수를 셀 때 유용하게 쓸 수 있다.
nums = [1, -2, 3, -4, 5]
positive_count = sum(x > 0 for x in nums)
print(positive_count) # 3
x > 0은 True 또는 False를 반환하고, sum()이 이를 1과 0으로 더한다.
bool() 함수
임의의 값을 bool()로 변환할 수 있다.
print(bool(0)) # False
print(bool(1)) # True
print(bool(-1)) # True
print(bool("")) # False
print(bool("hi")) # True
print(bool([])) # False
print(bool([1])) # True
print(bool(None)) # False
Truthy / Falsy
파이썬에서 False로 평가되는 값들이다.
| 값 | 설명 |
|---|---|
False |
불리언 False |
0 |
정수 0 |
0.0 |
실수 0.0 |
"" |
빈 문자열 |
[] |
빈 리스트 |
() |
빈 튜플 |
{} |
빈 딕셔너리 |
set() |
빈 집합 |
None |
None |
이 외의 값은 모두 True로 평가된다.
코딩테스트에서 리스트가 비어있는지 확인할 때 len(a) == 0 대신 not a를 쓸 수 있다.
a = []
if not a:
print("비어있다") # 비어있다
비교 연산자
비교 연산자는 모두 bool을 반환한다.
print(3 > 2) # True
print(3 < 2) # False
print(3 == 3) # True
print(3 != 2) # True
print(3 >= 3) # True
print(3 <= 2) # False
파이썬은 연속 비교도 지원한다.
x = 5
print(1 < x < 10) # True
print(1 < x < 4) # False
다른 언어에서는 1 < x and x < 10으로 써야 하지만, 파이썬은 수학적 표현 그대로 쓸 수 있다.
논리 연산자
and, or, not 세 가지를 사용한다.
print(True and True) # True
print(True and False) # False
print(False or True) # True
print(False or False) # False
print(not True) # False
print(not False) # True
단락 평가 (Short-circuit Evaluation)
and는 앞이 False이면 뒤를 평가하지 않는다. or는 앞이 True이면 뒤를 평가하지 않는다.
def check():
print("check 호출됨")
return True
False and check() # check 호출 안 됨
True or check() # check 호출 안 됨
이 특성 때문에 and와 or는 bool이 아닌 실제 평가된 값을 반환한다.
print(0 and "hello") # 0 (앞이 Falsy이면 앞 값 반환)
print(1 and "hello") # hello (앞이 Truthy이면 뒤 값 반환)
print(0 or "hello") # hello (앞이 Falsy이면 뒤 값 반환)
print(1 or "hello") # 1 (앞이 Truthy이면 앞 값 반환)
이를 활용하면 기본값 처리를 간결하게 쓸 수 있다.
name = input() or "익명"
입력이 빈 문자열이면 "익명"을 사용한다.
코딩테스트 활용 패턴
조건 만족 개수 세기
nums = [1, -2, 3, -4, 5]
print(sum(x > 0 for x in nums)) # 3
플래그 토글
visited = False
visited = not visited
print(visited) # True
딕셔너리 기본값 처리
d = {"a": 1}
val = d.get("b") or 0
print(val) # 0
'Study > Python' 카테고리의 다른 글
| [Python] 조건문 (0) | 2026.03.07 |
|---|---|
| [Python] 사전(Dict)과 집합(Set) (0) | 2026.03.07 |
| [Python] 리스트(List) (0) | 2026.03.07 |
| [Python] 문자열(String) 자료형과 튜플 (1) | 2026.03.07 |
| [Python] Number 자료형 (0) | 2026.03.07 |
