점프 투 파이썬 DAY7-2(불 자료형)

정지범·2026년 9월 16일

점프 투 파이썬

목록 보기
7/37

! 지금까지 숫자형, 문자열, 리스트, 튜플, 딕셔너리, 집합 자료형에 대해서 알아보았다.

  • 이번에는 참(True)과 거짓(False)을 나타내는 불(bool) 자료형에 대해서 알아보자.

  • 불 자료형은 다른 자료형과 달리 가질 수 있는 값이 딱 2개뿐이다.

    • True → 참
    • False → 거짓
  • 불 자료형은 앞으로 배울 if, while과 같은 조건문과 반복문에서 매우 중요하게 사용된다.

1. 불 자료형이란?

불(bool) 자료형은 참(True)과 거짓(False)을 나타내는 자료형이다.

True
False
  • 불 자료형이 가질 수 있는 값은 오직 True, False 두 가지뿐이다.

여기서 주의할 점이 있다.

True
False
  • True와 False의 첫 글자는 반드시 대문자로 작성해야 한다.
true    # 잘못된 표현
false   # 잘못된 표현
True    # 올바른 표현
False   # 올바른 표현

! True와 False는 문자열이 아니라 파이썬에서 미리 정해져 있는 값이다.

따라서 따옴표를 사용하지 않는다.

True
False
"True"
"False"
  • 위 두 경우는 서로 다른 자료형이다.
True    → bool 자료형
"True"  → str 자료형



2. 불 자료형은 어떻게 사용할까?

먼저 변수 a에는 True, 변수 b에는 False를 저장해 보자.

>>> a = True
>>> b = False
  • True와 False는 따옴표로 감싸지 않았지만 오류가 발생하지 않는다.
  • 파이썬에서 불 자료형을 나타내는 값으로 사용되기 때문이다.

2-1. type()으로 불 자료형 확인하기

type() 함수를 사용하면 변수의 자료형을 확인할 수 있다.

>>> type(a)
<class 'bool'>

>>> type(b)
<class 'bool'>
  • a와 b의 자료형이 모두 bool인 것을 확인할 수 있다.

기본 형태는 다음과 같다.

type(값)
  • type()은 해당 값이 어떤 자료형인지 알려 주는 파이썬의 내장 함수이다.

2-2. 비교 연산의 결과도 불 자료형이다

불 자료형은 직접 True, False를 저장해서 사용할 수도 있지만 비교 연산의 결과로도 자주 사용된다.

>>> 1 == 1
True
  • ==는 두 값이 같은지를 비교하는 연산자이다.
1 == 1

"1과 1이 같은가?"
  • 실제로 두 값은 같으므로 결과는 True가 된다.

>>> 2 > 1
True
  • 2는 1보다 크기 때문에 결과는 참이다.

>>> 2 < 1
False
  • 2는 1보다 작지 않기 때문에 결과는 거짓이다.

즉, 비교식은 결과로 True 또는 False를 반환한다.

>>> 10 == 10
True

>>> 10 == 20
False

>>> 10 > 5
True

>>> 10 < 5
False

2-2-1. =와 ==를 헷갈리지 말자

파이썬을 처음 공부할 때 자주 헷갈리는 부분이다.

a = 10
  • =는 변수에 값을 대입하는 연산자이다.
a에 10을 저장한다.

a == 10
  • ==는 두 값이 같은지 비교하는 연산자이다.
a와 10이 같은가?

연산자의미
=값 대입
==두 값이 같은지 비교



3. 자료형의 참과 거짓

파이썬에서는 True, False뿐만 아니라 우리가 지금까지 배운 자료형들도 상황에 따라 참 또는 거짓으로 판단된다.

  • 문자열
  • 리스트
  • 튜플
  • 딕셔너리
  • 숫자
  • None

등도 참 또는 거짓으로 판단할 수 있다.


3-1. 자료형의 참과 거짓 기준

대표적인 값을 정리하면 다음과 같다.

값참 / 거짓
"python"참
""거짓
[1, 2, 3]참
[]거짓
(1, 2, 3)참
()거짓
{'a': 1}참
{}거짓
1참
0거짓
None거짓

여기서 중요한 규칙을 찾을 수 있다.

문자열 → 비어 있으면 False
리스트 → 비어 있으면 False
튜플   → 비어 있으면 False
딕셔너리 → 비어 있으면 False

문자열

"python"
값이 있음 → True
""
비어 있음 → False

리스트

[1, 2, 3]
요소가 있음 → True
[]
요소가 없음 → False

튜플

(1, 2, 3)
요소가 있음 → True
()
요소가 없음 → False

딕셔너리

{'name': 'pingu'}
요소가 있음 → True
{}
요소가 없음 → False

숫자

숫자는 0일 경우 거짓으로 판단한다.

0
False

  • 0이 아닌 숫자는 참으로 판단한다.
1
3
100
-1
-50
True

음수라고 해서 거짓이 되는 것은 아니다.

0      → False
0 이외 → True

None

None은 값이 없음을 나타내는 특별한 객체이다.

None
  • 참과 거짓을 판단할 때는 False처럼 동작한다.
None → False
  • None에 대해서는 이후에 조금 더 자세히 알아보자.

3-2. 간단하게 기억하는 방법

처음에는 다음과 같이 기억하면 이해하기 쉽다.

비어 있다 → False
값이 있다 → True
  • 문자열
""          # False
"python"    # True
  • 리스트
[]          # False
[1, 2, 3]   # True
  • 튜플
()          # False
(1, 2)      # True
  • 딕셔너리
{}          # False
{'a': 1}    # True
  • 숫자
0           # False
1           # True

물론 정확하게는 자료형마다 참과 거짓을 판단하는 규칙이 있지만, 지금 단계에서는 비어 있는 값과 숫자 0은 대부분 False라고 기억하면 이해하기 쉽다.




4. 자료형의 참과 거짓은 어디에 사용할까?

자료형의 참과 거짓은 앞으로 배울 if문과 while문에서 많이 사용된다.

4-1. 빈 리스트를 조건문에서 사용하기

다음 예를 살펴보자.

>>> if []:
...     print("참")
... else:
...     print("거짓")
...
거짓
  • []는 비어 있는 리스트이다.
  • 비어 있는 리스트는 False로 판단된다.
  • 따라서 else 부분이 실행되어 "거짓"이 출력된다.

반대로 요소가 들어 있는 리스트를 사용해 보자.

>>> if [1, 2, 3]:
...     print("참")
... else:
...     print("거짓")
...
참
  • [1, 2, 3]에는 요소가 들어 있다.
  • 따라서 True로 판단된다.
  • "참"이 출력된다.

아직 if문을 배우지 않았다면 다음 정도로 이해하면 된다.

if 조건:
    조건이 참일 때 실행
else:
    조건이 거짓일 때 실행

4-2. while문에서 리스트 사용하기

자료형의 참과 거짓을 이용하면 다음과 같은 코드도 작성할 수 있다.

>>> a = [1, 2, 3, 4]

>>> while a:
...     print(a.pop())
...
4
3
2
1

  • 처음 리스트에는 다음 값들이 들어 있다.
a = [1, 2, 3, 4]
  • 리스트에 값이 있으므로 a는 참으로 판단된다.
[1, 2, 3, 4] → True

  • a.pop()은 리스트의 마지막 요소를 꺼내고 삭제한다.
[1, 2, 3, 4]

pop()

↓

4
  • 리스트는 다음과 같이 변한다.
[1, 2, 3]

  • 계속 반복하면 다음과 같이 된다.
[1, 2, 3, 4]
      ↓ pop()
[1, 2, 3]
      ↓ pop()
[1, 2]
      ↓ pop()
[1]
      ↓ pop()
[]

  • 결국 리스트가 빈 리스트가 된다.
[]
  • 빈 리스트는 False이므로 while문이 종료된다.
요소 있음 → True → while 계속 실행

요소 없음 → False → while 종료

이러한 방식은 파이썬 프로그램에서 자주 사용된다.




5. bool() 함수

자료형이 참인지 거짓인지 직접 확인하고 싶다면 bool() 함수를 사용할 수 있다.

bool(값)
  • 결과는 항상 다음 둘 중 하나이다.
True
False

5-1. 문자열 확인하기

>>> bool('python')
True
  • 'python'은 비어 있지 않은 문자열이므로 True이다.

>>> bool('')
False
  • ''는 비어 있는 문자열이므로 False이다.

5-1-1. 공백 문자열은 비어 있는 문자열이 아니다

다음 두 문자열은 다르다.

""
" "
  • 첫 번째 문자열은 아무 문자도 없다.
>>> bool("")
False

  • 두 번째 문자열에는 공백(space) 문자 하나가 들어 있다.
>>> bool(" ")
True

눈으로 보기에는 비슷하지만 완전히 다른 값이다.

""   → 문자 0개 → False
" "  → 공백 1개 → True

5-2. 리스트 확인하기

>>> bool([1, 2, 3])
True
  • 요소가 있으므로 True이다.

>>> bool([])
False
  • 요소가 없으므로 False이다.

5-3. 숫자 확인하기

>>> bool(0)
False

>>> bool(3)
True

  • 음수 역시 0이 아니므로 참이다.
>>> bool(-1)
True

숫자는 다음과 같이 기억하면 된다.

0      → False
0 이외 → True

5-4. 여러 자료형 bool() 확인하기

>>> bool("python")
True

>>> bool("")
False

>>> bool([1, 2, 3])
True

>>> bool([])
False

>>> bool((1, 2))
True

>>> bool(())
False

>>> bool({'a': 1})
True

>>> bool({})
False

>>> bool(0)
False

>>> bool(100)
True

>>> bool(None)
False



6. bool(a)와 a == True는 다르다

초보자가 많이 헷갈릴 수 있는 부분이다.

  • 다음 리스트를 만들어 보자.
>>> a = [1, 2, 3]
  • 리스트에 값이 있으므로 bool(a)의 결과는 True이다.
>>> bool(a)
True

그렇다면 다음 결과도 True일까?

>>> a == True
False
  • 결과는 False이다.

그 이유는 두 표현의 의미가 다르기 때문이다.

bool(a)

는

"a를 참/거짓으로 판단하면 무엇인가?"

를 확인하는 것이다.


반면

a == True

는

"리스트 a라는 값 자체가 True와 같은 값인가?"

를 비교하는 것이다.

  • a는 리스트이고 True는 bool 자료형이므로 서로 같은 값이 아니다.

따라서 다음 두 문장은 같은 의미가 아니다.

bool(a) == True
a == True

! 중요

a = [1, 2, 3]

bool(a)     # True
a == True   # False

a 자체가 True라는 뜻이 아니라,
조건으로 사용했을 때 참으로 판단된다는 뜻이다.




7. 논리 연산자

불 자료형에서는 여러 조건을 연결하기 위해 논리 연산자를 사용할 수 있다.

  • 파이썬에서 대표적으로 사용하는 논리 연산자는 다음 3가지이다.
and
or
not
연산자의미
and그리고
or또는
not반대



8. and 연산자

and는 양쪽 조건이 모두 참일 때만 True를 반환한다.

>>> True and True
True

>>> True and False
False

>>> False and True
False

>>> False and False
False

표로 정리하면 다음과 같다.

ABA and B
TrueTrueTrue
TrueFalseFalse
FalseTrueFalse
FalseFalseFalse

즉, and는 둘 다 참이어야 참이다.

True  and True  → True

하나라도 False
          ↓
        False

8-1. and 조건 사용하기

>>> x = 5
>>> y = 10

>>> x > 0 and y > 0
True
  • x > 0
5 > 0 → True
  • y > 0
10 > 0 → True

  • 따라서 다음과 같다.
True and True

↓

True



9. or 연산자

or는 양쪽 조건 중 하나라도 참이면 True를 반환한다.

>>> True or True
True

>>> True or False
True

>>> False or True
True

>>> False or False
False

표로 정리하면 다음과 같다.

ABA or B
TrueTrueTrue
TrueFalseTrue
FalseTrueTrue
FalseFalseFalse

즉, or는 하나라도 참이면 참이다.

하나라도 True
      ↓
    True

둘 다 False
      ↓
    False

9-1. or 조건 사용하기

>>> x = 5
>>> y = 10

>>> x > 10 or y > 5
True
  • x > 10
5 > 10 → False
  • y > 5
10 > 5 → True

  • 따라서
False or True

↓

True

가 된다.




10. not 연산자

not은 참과 거짓을 반대로 바꾸는 연산자이다.

>>> not True
False

>>> not False
True

간단하게 정리하면 다음과 같다.

값not 결과
TrueFalse
FalseTrue
True  → not → False
False → not → True

10-1. 숫자와 not

앞에서 숫자 1은 참, 0은 거짓이라고 배웠다.

>>> bool(1)
True

>>> bool(0)
False

  • 따라서 not을 사용하면 결과가 반대가 된다.
>>> not 1
False
>>> not 0
True

10-2. 조건식과 not

>>> x = 5
>>> y = 10

>>> x > y
False
  • x > y는 거짓이다.

  • 여기에 not을 붙이면 결과가 반대로 바뀐다.
>>> not (x > y)
True
x > y

5 > 10

↓

False

↓

not False

↓

True



11. and, or, not 한눈에 보기

논리 연산자 3개를 간단하게 정리하면 다음과 같다.

연산자의미True가 되는 조건
and그리고두 조건 모두 참
or또는하나 이상 참
not반대참/거짓을 반대로 변경

간단하게 외우면 다음과 같다.

and
→ 둘 다 True여야 True

or
→ 하나라도 True면 True

not
→ True ↔ False

예를 들어 다음 조건을 살펴보자.

age = 20
has_ticket = True

  • 나이가 18세 이상이고 티켓도 있어야 한다면 and를 사용할 수 있다.
age >= 18 and has_ticket
True and True

↓

True

  • 둘 중 하나의 조건만 만족해도 된다면 or를 사용할 수 있다.
age >= 18 or has_ticket

  • 조건을 반대로 만들고 싶다면 not을 사용할 수 있다.
not has_ticket



12. 비교 연산자와 논리 연산자 함께 사용하기

실제 프로그램에서는 논리 연산자를 단독으로 사용하는 것보다 비교 연산자와 함께 사용하는 경우가 많다.

x = 5
y = 10

둘 다 참인지 확인

>>> x > 0 and y > 0
True

둘 중 하나라도 참인지 확인

>>> x > 10 or y > 5
True

결과를 반대로 만들기

>>> not (x > y)
True

코드가 복잡해 보인다면 각각 나누어서 생각하면 쉽다.

x > 0 and y > 0

먼저

x > 0 → True

y > 0 → True

그리고

True and True

따라서

True

가 된다.




13. 불 자료형에서 기억해야 할 핵심

불 자료형에서 가장 중요한 내용을 정리하면 다음과 같다.

  • 불 자료형은 True, False 두 가지 값을 가진다.
True
False

  • 반드시 첫 글자를 대문자로 작성한다.
True
False
true     # X
false    # X

  • 자료형은 bool이다.
>>> type(True)
<class 'bool'>

  • 비교식의 결과는 불 자료형이다.
>>> 1 == 1
True

>>> 2 < 1
False

  • 비어 있는 문자열은 거짓이다.
bool("")
# False

  • 비어 있는 리스트도 거짓이다.
bool([])
# False

  • 비어 있지 않은 자료형은 대부분 참으로 판단된다.
bool("python")
# True

bool([1, 2, 3])
# True

  • 숫자 0은 거짓이다.
bool(0)
# False

  • 0이 아닌 숫자는 참이다.
bool(1)
# True

bool(-10)
# True

  • None은 거짓으로 판단된다.
bool(None)
# False

  • and는 두 조건이 모두 참이어야 참이다.
True and True
# True

  • or는 하나라도 참이면 참이다.
True or False
# True

  • not은 참과 거짓을 반대로 바꾼다.
not True
# False

not False
# True

! 불 자료형 핵심

불 자료형에서 가장 먼저 기억해야 할 것은 다음과 같다.

True  → 참
False → 거짓

그리고 다른 자료형도 조건문에서 참과 거짓으로 판단될 수 있다.

빈 문자열 ""     → False
빈 리스트 []     → False
빈 튜플 ()       → False
빈 딕셔너리 {}   → False
숫자 0           → False
None             → False

값이 들어 있음   → 대부분 True

논리 연산자는 다음 3가지만 우선 확실하게 기억하자.

and → 둘 다 참이어야 참
or  → 하나라도 참이면 참
not → 참과 거짓을 반대로

앞으로 배우게 될 if, while문은 결국 조건을 True와 False로 판단해서 프로그램의 실행 흐름을 결정하는 것이므로 불 자료형을 확실하게 이해해 두는 것이 중요하다.

profile
성실하자:)

0개의 댓글