Welcome to the Matrix

009. 파이썬 불(Boolean) 자료형과 연산자 본문

Python/PythonBasic

009. 파이썬 불(Boolean) 자료형과 연산자

haru.keiko 2020. 12. 25. 21:45

이번 시간에는 파이썬의 '불(Boolean) 자료형'과 연산자에 대해서 알아보겠습니다. 

파이썬 불(boolean) 자료형 썸네일

불(Boolean) 자료형

'불리언(Boolean) 자료형'이라고도 하는 불 자료형은 아주 간단하지만, 정말 자주 사용되는 중요한 자료형입니다.

불 자료형은 단순히 '참(True)''거짓(False)' 값만을 가집니다. 즉, 참과 거짓을 다루는 자료형이 '불' 자료형인 것입니다.

불(Boolean) 자료형은 '참(True)'과 '거짓(False)'을 다루는 자료형이다. 

 

불은 참이라는 값으로 'True'를 사용하고, 거짓이라는 값으로 'False'를 사용합니다. 

'True'와 'False'는 파이썬에서 특별한 용도로 사용하기 위해 '키워드'로 지정한 것이기 때문에 다른 용도로 사용할 수 없고, 또 소문자('true', 'false')로 사용할 수 도 없습니다. 

파이썬 키워드 리스트

 

불 자료형에 대해서 좀 더 알아볼게요. 

 

수학에서 명제나 논리를 다룰 때, 그것이 참인지 거짓인지를 판단하게 됩니다. 파이썬에서 불 자료형이라는 것은 그와 동일한 역할을 하기 위해 불 자료형을 사용합니다. 

 

예를 들어 수학에서 '1은 5보다 작다'라는 명제가 있다고 가정합시다. 이 명제는 '참'인 명제입니다. 다른 예로, '1은 5보다 크다'라는 명제가 있다면 그 명제는 '거짓'인 명제입니다. 

이를 파이썬에서 사용하는 방식으로 바꾸어 생각해보면 이렇습니다. 

파이썬 불 연산 예제

 

어떤가요?

파이썬에서도 동일하게 '1은 5보다 작다'를 '참'으로 판단하고, '1은 5보다 크다'를 '거짓'으로 판단합니다. 

파이썬 불 자료형을 type 함수로 확인

 

그리고 이렇게 참과 거짓으로 판단한 결과의 자료형은 불('bool')인 것을 확인할 수 있습니다. bool은 boolean의 줄임말입니다.

불 자료형은 참과 거짓을 다루는 자료형입니다. 이것이 불 자료형에 대한 개념의 모든 것입니다. 

print()는 괄호 안의 내용을 화면에 출력하는 함수.
type()은 괄호 안의 내용의 자료형을 알려주는 함수.

 

불 연산자

불 자료형의 개념에 대해 알아봤으니, 이젠 불 자료형을 다루는 연산자에 대해서 살펴보겠습니다. 

불 자료형을 다루는 연산자는 크게 '비교 연산자'와 '논리 연산자'로 나눌 수 있습니다. 

 

비교 연산자

비교 연산자는 말 그대로 값을 비교해 그 결과로 참과 거짓을 나타내는 연산입니다. 앞서 살펴본 크다(>)와 작다(<)와 같은 것이 비교 연산자에 해당합니다.

 

비교 연산자로 사용할 수 있는 연산자는 다음 표를 통해 확인할 수 있습니다. 

연산자 내용 설명
== 양쪽 피연산자가 서로 같다
!= 양쪽 피연산자가 서로 다르다
> 왼쪽 피연산자가 오른쪽 피연산자보다 크다
< 왼쪽 피연산자가 오른쪽 피연산자보다 작다
>= 왼쪽 피연산자가 오른쪽 피연산자보다 크거나 같다
<= 왼쪽 피연산자가 오른쪽 피연산자보다 작거나 같다

불 자료형의 비교 연산자를 이용한 예를 살펴보겠습니다. 

파이썬 불 비교연산자 예제

어때요?

생각하던것과 동일한 결과인가요?

 

논리 연산자

논리 연산자는 수학에서 '논리합', '논리곱' 그리고 '부정'을 판단하는 연산자입니다. 

 

먼저, '논리합'과 '논리곱'을 살펴봅시다.

예를 들어, '내 키는 180cm 이상이다.'와 '내 몸무게는 70kg 이상이다.'라는 명제가 있다고 합시다. 이 예에서 논리합과 논리곱은 다음과 같습니다. 

내 키는 180cm 이상이거나, 내 몸무게는 70kg 이상이다. (논리합)

내 키는 180cm 이상이고, 내 몸무게는 70kg 이상이다.(논리곱)

논리합의 경우, '~이거나'로 표현되어 두 명제 중 하나라도 참일 경우, 그 결과가 참이 됩니다. 
논리곱의 경우, '~이고'로 표현되어 두 명제 중 모두 참일 경우, 그 결과가 참이 됩니다. 

 

파이썬에서도 이와 동일합니다. 

두 개 이상의 명제(표현식)가 주어질 때, 두 명제 사이의 관계에 따라 참과 거짓을 판단할 수 있습니다. 

 

'부정'은 현재 값이 참일경우 이를 거짓으로 판단하고, 현재 값이 거짓일 경우 이를 참으로 판단합니다. 

예를 들어, '1 + 1 = 2는 참이다.'의 명제에 대해 부정을 하게 되면, '1 + 1 = 2는 거짓이다.'가 되는 것이죠. 논리적으로 그렇다는 겁니다. 

 

논리 연산자로 사용할 수 있는 연산자는 다음 표를 통해 확인할 수 있습니다. 

연산자 내용 설명
and 피연산자 모두 참일 때 값이 참이고, 그 외에는 모두 거짓
or 피연사 중 하나라도 참일 경우, 그 값은 참
not 피연산자가 참일 경우 거짓, 거짓일 경우 참

 

장황하게 설명을 했지만, 예제를 통해 확인하는 게 가장 빠를 듯합니다. 

파이썬 논리 연산자 예제

 

앞서 설명한 논리곱, 논리합, 부정에 대해 생각하면서 읽어보세요.

  1. '1 < 5'는 참입니다. 그리고 '2 > 1'도 참입니다. 그렇기 때문에 (1 < 5) and (2 > 1) 논리곱은 참입니다. 
  2. '1 < 5'는 참입니다. 하지만 '1 > 2'는 거짓입니다. 그렇기 때문에 (1 < 5) and (1 > 2) 논리곱은 거짓입니다.
  3. '1 < 5'는 참입니다. 그리고 '2 >1'도 참입니다. 그렇기 때문에 (1 < 5) or (2 > 1) 논리합은 참입니다.
  4. '1 < 5'는 참입니다. 하지만 '1 > 2'는 거짓입니다. 그렇기 때문에 (1 < 5) or (1 > 2) 논리합은 참입니다. 
  5. '1 < 5'는 참입니다. 그렇기 때문에 not (1 < 5)의 부정은 거짓입니다. 

 

이해가 되시나요?

중/고등학교 시절 수학시간에 배웠던 '논리'라는 것을 곱씹어 기억해 보면 당연한 것들이죠. 이전 시간에도 이야기했듯, 파이썬이라는 프로그래밍 언어는 지극히 상식적인 언어입니다. ^^

 

불 자료형이 필요한 이유?

지금까지 파이썬의 불 자료형과 그 연산에 대해서 알아봤습니다. 

그런데, 이쯤해서 '이런 불 자료형은 왜 알아야 하고 언제 필요한 걸까?'라는 궁금증이 생길 수도 있을 것 같습니다. 

 

컴퓨터는 지극히 논리적인 녀석입니다. 

그렇기 때문에 컴퓨터에게 어떤 일을 시키려면, 그또한 지극히 논리적으로 시켜야 합니다. 

컴퓨터가 일을 할 때에는 항상 어떤 조건에 대해 판단을 하고, 어떻게 할지에 대한 결정을 내립니다.

'이것은 참이니 이렇게 해야지' 또는 '이것은 거짓이니 저렇게 해야지'.. 

 

이런 판단의 근거가 되는 것이 '불 자료형'인 것입니다. 

그리고, 이는 조만간 살펴보게 될 파이썬의 '조건문'에서 불 자료형이 어떻게 사용되는지 본격적으로 알게 됩니다. 

 

 

파이썬 프로그래밍 언어를 알아가는 과정이 상당히 더디다고 생각할 것 같습니다. 

사실이 그렇고요~ 

하지만, 지금은 프로그래밍을 하기 위해 필요한 것들 중 기본이 되는 것들의 조각조각을 먼저 알아가는 단계라고 생각해야 합니다.

한꺼번에 너무 많은 것을 먹으면 체하듯, 조금씩 기본이 되는 것들 부터 소화를 시켜야 하니까요~