안녕하세요!🤗 저번 포스팅에서는 숫자 자료형에 대해 알아봤는데요, 이번에는 불리언(Boolean)에 대해 소개하려 합니다. 파이썬 IDLE 또는 개발툴(IDE)을 실행해주세요 :)
(참고로, 저는 아나콘다의 주피터 노트북으로 실습을 하였습니다!)
파이썬에서 참은 True, 거짓은 False로 표현합니다. Boolean은 논리연산과 비교연산을 사용합니다. Boolean을 정수로 표현하면, True는 1로, False는 0으로 표현할 수 있습니다.😝
먼저, 논리 연산자는 'And', 'Or', 'Not'이 있습니다.😮 3가지 논리 연산자의 차이를 잘 기억해주세요❗
And 연산자는 하나라도 거짓이 존재하면 False가 출력되고, 모두 참이야만 True가 출력됩니다.
And 연산자
True and False
False
Or 연산자는 하나라도 참이 존재하면 True가 출력되고, 모두 거짓일 때만 False가 출력됩니다.
Or 연산자
True or False
True
Not 연산자는 True는 False로, False는 True로 출력합니다.
Not 연산자
not True
False
비교 연산은 말 그대로 비교할 때 사용됩니다. 어떤 연산자가 있는지 알아봅시다~!!😊
- 같다(==)
a==b 형태로 작성하며, a와 b가 같으면 True, 다르면 False가 출력됨.3 == 2 # 같다
False
- 같지 않다(!=)
'=' 앞에 느낌표(!)를 붙여 사용하며, 같지 않으면 True, 같으면 False가 출력됨.3 != 2 # 같지않다
True
- 크다(>) / 크거나 같다(>=)
- a > b : a가 b보다 크면(초과) True, 그렇지 않으면 False를 출력함.
- a >= b : a가 b보다 크거나 같으면(이상) True, 그렇지 않으면 False를 출력함.
3 > 2 #크다
True
3 >= 3 #크거나 같다
True
- 작다(<) / 작거나 같다(<=)
- a < b : a가 b보다 작으면(미만) True, 그렇지 않으면 False를 출력함.
- a <= b : a가 b보다 작거나 같으면(이하) True, 그렇지 않으면 False를 출력함.
3 < 2 # 작다
False
3 <= 5 # 작거나 같다
True
- & 연산자
논리 연산자 'And'와 비슷하게 작동됩니다. 논리 연산자인 And 연산을 생각해보면, 모두 True(1)일 때만 True(1)을 출력합니다. 따라서, & 연산자는 모두 1일 때만 1을, 둘 중 하나가 0이면 0으로 계산합니다. 아래의 예시를 살펴볼까요?8 & 10
8
왜 이렇게 출력될까요? 8과 10을 이진수로 변경하면 알 수 있습니다!
bin(8) #8을 2진수로 : 0b1000 bin(10) #10을 2진수로 : 0b1010
앞에서 말했듯이, 모두 1이면 1을, 둘 중 하나라도 0이면 0으로 바꾼다고 생각하면 이해하기 쉽습니다.
1000 # 8의 이진수 1010 # 10의 이진수
따라서, 최종적으로 1000이 출력되며, 이는 다시 10진수로 8이므로, 8을 출력하게 되는 것 입니다.
- | 연산자
논리 연산자의 'Or'와 비슷하게 연산 작업을 수행합니다. Or 연산자는 둘 중 하나라도 True(1)면 True(1)를 출력한다는 것을 명심하고 아래 예시를 살펴봅시다.8 | 10
10
| 연산자는 둘 중 하나라도 1이면 1을 출력하고, 모두 0일 때만 0을 출력합니다.
1000 # 8의 이진수 1010 # 10의 이진수
따라서, 1010을 출력이 되며, 이를 다시 10진수로 바꾸면 10이 되므로 최종적으로 10을 출력합니다.
- 키보드에서 '|' 기호를 찾지 못하는 분들도 가끔 있더라구요! '|' 기호는 키보드에서 Backspace 바로 아래에 있습니다!
- ~ 연산자
논리 연산자의 'Not'과 비슷한 방법으로 작업을 수행합니다. Not 연산자는 True(1)은 False(0)으로, False(0)은 True(1)로 바꿔 출력합니다. 아래의 예시로 살펴봅시다!~ 8
-7
2진수로 전환한 뒤 0은 1로, 1은 0으로 바꿔주면,
1010 # 8의 2진수 -0101 # ~ 8 결과
그러므로 최종적으로 -7이 출력됩니다.
논리 연산자와 비교 연산자를 각각 사용할 수도 있겠지만, 일반적으로 두 연산자는 혼합되어 사용되는 경우가 많습니다. 저는 데이터를 전처리 하거나 분석을 위한 Feature Engineering 작업을 할 때 논리 연산자와 비교 연산자를 자주 사용하는 편입니다. 무튼, 아래의 예시를 통해 어떻게 두 연산자가 혼합되어 사용되는 지 살펴봅시다~!😤
- ex1)
7>0 and 7<10
True
and를 기준으로 왼쪽 식은 True를 출력하고, 오른쪽도 True를 출력합니다. 따라서, True and True 는 True를 리턴하게 됩니다.
- ex2)
8%2 == 0 or 8%3 == 0 # 8을 2로 나눴을 때의 나머지=0? # 8을 3으로 나눴을 떄의 나머지=0?
True
or를 기준으로 왼쪽 식은 True 출력하고, 오른쪽 식은 False를 출력합니다. 따라서, True or False 는 True를 리턴하게 됩니다.
- ex3) 7월의 계절 출력하기 (아직 다루지 않은 if문과 문자열 출력 등의 내용을 담고 있습니다..! 다음에 천천히 이해하기 쉽도록 정리해서 포스팅할게요😉)
month = 7 # 7월의 계절을 출력해야하므로, month 변수 선언 if month >= 3 and month < 6: # 논리 연산자와 비교 연산자 사용 print(str(month)+"월의 계절은 봄!") # str() 메서드: 숫자-> 문자 elif month >= 6 and month < 9: print(str(month)+"월의 계절은 여름!") # 변수와 문자열 출력 elif 9 <= month < 12: # 이렇게도 작성할 수 있어요!! print(str(month)+"월의 계절은 가을!") else: print(month+"월의 계절은 겨울!")
7월의 계절은 여름!
month가 6보다 큰 동시에 9보다 작으므로 "7월의 계절은 여름!"을 출력하게 됩니다!
불리언(Boolean)은 참과 거짓의 표현이며, 불리언의 연산을 수행해보았습니다. 논리 연산과 비교 연산 이해되셨나요??😚 논리 연산과 비교 연산은 보통 같이 사용한다는 사실도 꼭 기억해주세요! 다음 포스팅은 자료형 중 문자열에 대해 알아볼 예정입니다. 자료형과 기본 연산과 관련된 포스팅이 모두 끝나면, 예제 3번과 같은 문제를 5개정도 만들어서 올릴 계획입니다! 그럼 다음 포스팅 때 만나요~!🤍
전공 수업의 강의 자료를 참고하여 포스팅하고 있습니다 :)