불(bool) 자료형

불(bool) 자료형이란 참(True)과 거짓(False)을 나타내는 자료형이다. 불 자료형은 다음 2가지 값만을 가질 수 있다.

  • True: 참을 의미한다.
  • False: 거짓을 의미한다.

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

다음과 같이 변수 a에는 True, 변수 b에는 False를 지정해 본다.

>>> a = True
>>> b = False

따옴표로 감싸지 않은 문자열을 변수에 지정해서 오류가 발생할 것 같지만, 잘 실행된다. type 함수를 변수 a와 b에 사용하면 두 변수의 자료형이 bool로 지정된 것을 확인할 수 있다.

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

type(x)x의 자료형을 확인하는 파이썬 내장 함수이다.

불 자료형은 조건문의 리턴값으로도 사용된다.

>>> 1 == 1
True

1 == 1은 ‘1과 1이 같은가?’를 묻는 조건문이다. 이런 조건문은 결과로 True 또는 False에 해당하는 불 자료형을 리턴한다. 1과 1은 같으므로 True를 리턴한다.

>>> 2 > 1
True

2는 1보다 크므로 2 > 1 조건문은 참이다. 즉, True를 리턴한다.

>>> 2 < 1
False

2는 1보다 작지 않으므로 2 < 1 조건문은 거짓이다. 즉, False를 리턴한다.

자료형의 참과 거짓

‘자료형에 참과 거짓이 있다?’ 라는 말이 조금 이상하게 들리겠지만, 참과 거짓은 분명히 있다. 이는 매우 중요한 특징이며 실제로도 자주 쓰인다.

자료형의 참과 거짓을 구분하는 기준은 다음과 같다.

  
참 or 거짓
“python”
“”거짓
[1, 2, 3]
[]거짓
(1, 2, 3)
()거짓
{’a’: 1}
{}거짓
1
0거짓
None거짓

문자열, 리스트, 튜플, 딕셔너리 등의 값이 비어 있으면(””, [], (), {}) 거짓이 되고 비어있지 않으면 참이 된다. 숫자에서는 그 값이 0일 때 거짓이 된다.

다음 예를 보고 자료형의 참과 거짓이 프로그램에서 어떻게 쓰이는지 간단히 알아본다.

>>> a = [1, 2, 3, 4]
>>> while a:
...     print(a.pop())
...
4
3
2
1

먼저 a = [1, 2, 3, 4]라는 리스트를 만들었다. while문은 조건문이 참인 동안 조건문 안에 있는 문장을 반복해서 수행한다.

while 조건문:
	수행할_문장

즉, 위 예를 보면 a가 참인 경우, a.pop()을 계속 실행하여 출력하라는 의미이다. a.pop() 함수는 리스트 a의 마지막 요소를 끄집어 내는 함수이므로 리스트 안에 요소가 존재하는(a가 참인 동안) 마지막 요소를 계속 끄집어 낼 것이다. 결국 더 이상 끄집어 낼 것이 없으면 a가 빈 리스트([])가 되어 거짓이 된다. 따라서 while문에서 조건문이 거짓이 되므로 while 문을 빠져나가게 된다. 이는 파이썬 프로그래밍에서 매우 자주 사용하는 기법 중 하나이다.

>>> if []:
...     print("참")
... else:
...     print("거짓")
...
거짓

[]는 앞의 표에서 볼 수 있듯이 비어 있는 리스트이므로 거짓이다. 따라서 “거짓”이라는 문자열이 출력된다.

>>> if [1, 2, 3]:
...     print("참")
... else:
...     print("거짓")
...
참

이 소스 코드를 해석해 보면 다음과 같다.

만약 [1, 2, 3]이 참이면 "참"이라는 문자열을 출력하고, 그렇지 않으면 "거짓"이라는 문자열을 출력한다.

[1, 2, 3]은 요솟값이 있는 리스트이므로 참이다. 따라서 “참”을 출력한다.

불 연산

자료형에 참과 거짓이 있다는 것을 이제 알게 되었다. bool 함수를 사용하면 자료형의 참과 거짓을 보다 정확하게 식별할 수 있다.

>>> bool('python')
True

‘python’ 문자열은 비어 있지 않으므로 bool 연산의 결과로 불 자료형인 True를 리턴한다.

>>> bool('')
False

‘’ 문자열은 비어 있으므로 bool 연산의 결과로 불 자료형인 False를 리턴한다.

앞에서 알아본 몇 가지 예제를 더 수행해 본다.

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

앞에서 알아본 것과 동일한 참과 거짓에 대한 결과를 리턴하는 것을 확인할 수 있다.

출처: https://wikidocs.net/17

* TOC {:toc}

© 2021. All rights reserved.