인생은 여행 人生は旅

파이썬 - 불자료형 본문

코딩 공부

파이썬 - 불자료형

하늘빛 칵테일 2024. 3. 7. 11:01
2023 점프 투 파이썬

02-7 불 자료형

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

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

True나 False는 파이썬의 예약어로, 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의 자료형을 확인하는 파이썬의 내장 함수이다.

불 자료형은 조건문의 리턴값으로도 사용된다. 조건문에 대해서는 if 문에서 자세히 배우겠지만 잠시 살펴보고 넘어가자.

>>> 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일 때 거짓이 된다. 위 표를 보면 None이 있는데, 이것에 대해서는 뒷부분에서 배우므로 아직은 신경 쓰지 말자. 그저 None은 거짓을 뜻한다는 것만 알아 두자.

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

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

먼저 a = [1, 2, 3, 4]라는 리스트를 만들었다. while 문은 03장에서 자세히 다루지만, 간단히 알아보면 다음과 같다. 조건문이 참인 동안 조건문 안에 있는 문장을 반복해서 수행한다.

while 조건문:
    수행할_문장

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

위 예가 너무 복잡하다고 생각하는 독자는 다음 예를 보면 쉽게 이해될 것이다.

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

[]는 앞의 표에서 볼 수 있듯이 비어 있는 리스트이므로 거짓이다. 따라서 "거짓"이라는 문자열이 출력된다. if 문에 대해서 잘 모르는 독자라도 위 문장을 해석하는 데는 무리가 없을 것이다.

if 문에 대해서는 03장에서 자세히 다룬다.

다른 예도 하나만 더 살펴보자.

>>> 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

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

 

이 정도 연산은 그렇게 어렵진 않네요 ^^

파이썬을 적용시켜서 뭔가를 해볼 수 있으려면

아직도 갈길이 먼듯하지만 ㅎㅎ