불 (bool)
불 자료형이란 참(True)과 거짓(False)을 나타내는 자료형이다.
불 자료형은 다음 2가지 값만을 가질 수 있다.
- True : 참을 의미한다.
- False : 거짓을 의미한다.
True나 False는 파이썬의 예약어로
true, false와 같이 작성하면 안 되고 첫 문자를 항상 대문자로 작성해야 한다.
불 자료형은 어떻게 사용할까?
>>> a = True
>>> b = False
# 따옴표로 감싸지 않은 문자열을 변수에 지정해서 오류가 발생할 것 같지만, 잘 실행된다.
# type 함수를 변수 a와 b에 사용하면 두 변수의 자료형이 bool로 지정된 것을 확인할 수 있다.
>>> type(a)
<class 'bool'>
>>> type(b)
<class 'bool'>
type(x)는 x의 자료형을 확인하는 파이썬의 내장 함수이다.
불 자료형은 조건문의 리턴값으로도 사용된다.
조건문에 대해서는 if 문에서 자세히 배우겠지만 잠시 살펴보고 넘어가자.
# 1 == 1은 '1과 1이 같은가?'를 묻는 조건문이다.
# 이런 조건문은 결과로 True 또는 False에 해당하는 불 자료형을 리턴한다.
# 1과 1은 같으므로 True를 리턴한다.
>>> 1 == 1
True
# 2는 1보다 크므로 2 > 1 조건문은 참이다.
# 즉, True를 리턴한다.
>>> 2 > 1
True
# 2는 1보다 작지 않으므로 2 < 1 조건문은 거짓이다.
# 즉, False를 리턴한다.
>>> 2 < 1
False
자료형의 참과 거짓
'자료형에 참과 거짓이 있다?'라는 말이 조금 이상하게 들리겠지만, 참과 거짓은 분명히 있다.
이는 매우 중요한 특징이며 실제로도 자주 쓰인다.
자료형의 참과 거짓을 구분하는 기준은 다음과 같다.
값 | 참 or 거짓 |
"python" | 참 |
"" | 거짓 |
[1, 2, 3] | 참 |
[] | 거짓 |
(1, 2, 3) | 참 |
() | 거짓 |
{'a', '1'} | 참 |
{} | 거짓 |
1 | 참 |
0 | 거짓 |
None | 거짓 |
문자열, 리스트, 튜플, 딕셔너리 등의 값이 비어 있으면 ("", [], (), {}) 거짓이 되고, 비어 있지 않으면 참이 된다.
숫자에서는 그 값이 0일 때 거짓이 된다.
프로그램에서 bool 자료형의 사용 예시
# a가 참인 경우, a.pop()를 계속 실행하여 출력하라는 의미이다.
# a.pop()함수는 리스트 a의 마지막 요소를 끄집어 내는 함수이므로 리스트 안에 요소가 존재하는 한
# (a가 참인 동안) 마지막 요소를 계속 끄집어 낼 것이다.
# 결국 더 이상 끄집어 낼 것이 없으면 a가 빈 리스트([])가 되어 거짓이 된다.
# 따라서 while 문에서 조건문이 거짓이 되므로 while 문을 빠져나가게 된다.
# 파이썬 프로그래밍에서 매우 자주 사용하는 기법 중 하나이다.
>>> a = [1, 2, 3, 4]
>>> while a:
... print(a.pop())
...
4
3
2
1
# a = [1, 2, 3, 4]라는 리스트를 만들었다.
# while 문은 간단히 알아보면 다음과 같다.
# 조건문이 참인 동안 조건문 안에 있는 문장을 반복해서 수행한다.
while 조건문:
수행할_문장
>>> if []:
... print("참")
... else:
... print("거짓")
...
거짓
# []는 비어 있는 리스트로 거짓이다.
# 따라서 "거짓"이라는 문자열이 출력된다.
# if 문에 대해서 잘 모르는 독자라도 문장을 해석하는 데는 무리가 없을 것이다.
>>> if []:
... print("참")
참
... else:
... print("거짓")
...
거짓
# 만약 [1, 2, 3]이 참이면 "참"이라는 문자열을 출력하고,
# 그렇지 않으면 "거짓"이라는 문자열을 출력하라.
>>> if [1, 2, 3]:
... print("참")
... else:
... print("거짓")
...
참
# [1, 2, 3]은 요솟값이 있는 리스트이므로 참이다.
# 따라서 "참"을 출력한다.
불 연산
자료형에 참과 거짓이 있다는 것을 이제 알게 되었다.
bool 함수를 사용하면 자료형의 참과 거짓을 보다 정확하게 식별할 수 있다.
# 'python' 문자열은 비어 있지 않으므로 bool 연산의 결과로 불 자료형인 True를 리턴한다.
>>> bool('python')
True
# '' 문자열은 비어 있으므로 bool 연산의 결과로 불 자료형인 False를 리턴한다.
>>> bool('')
False
몇 가지 예제를 더 수행해 보자.
>>> bool([1, 2, 3])
True
>>> bool([])
False
>>> bool(0)
False
>>> bool(3)
True
지금까지 파이썬의 가장 기본이 되는 자료형인 숫자, 문자열, 리스트, 튜플, 딕셔너리, 집합, 불에 대해서 알아보았다.
여기까지 잘 따라온 독자라면 파이썬에 대해서 대략 50% 정도 습득했다고 보아도 된다.
그만큼 자료형은 중요하고 프로그램의 근간이 되기 때문에 확실하게 해 놓지 않으면 좋은 프로그램을 만들 수 없다.
이 책의 예제만 따라 하지 말고 직접 여러 가지 예들을 테스트해 보면서 자료형에 익숙해지기 바란다.
'🔍QA & TEST > 🧑🏻💻Python' 카테고리의 다른 글
[Python] 제어문 : if문 (조건문) (0) | 2024.07.15 |
---|---|
[Python] 기초 : 변수 (자료형의 값을 저장하는 공간) (0) | 2024.07.14 |
[Python] 자료형 : 집합(Set) (4) | 2024.07.14 |
[Python] 자료형 : 딕셔너리(Dictionary) (5) | 2024.07.14 |
[Python] 자료형 : 튜플(Tuple) (0) | 2024.07.14 |