Python-05.Boolean

안녕하세요 묵호입니다.
이번 글은 Boolean에 대해 적은 글입니다.

이산수학

이산수학이란 참(True)인지 거짓(False)인지를 다루는 수학입니다. Boolean 타입은 정수, 실수 및 문자열처럼 값을 저장하고 계산하는데 활용하지만, 그 값이 True 또는 False로만 한정됩니다.

a = True
b = False
print(a, b)
# True False


논리 연산

논리 연산이란 논리적인 관계를 나타내기 위한 수학의 한 분야로 and, or, not 등이 있습니다. 아래 Truth Table을 보고 and, or, not을 이해해봅시다.

A B A and B A or B not A
True True True True False
True False False True False
False True False True True
False False False False True

and 연산은 모든 값이 True일 때 True를 가지며, 그 외에는 False를 가집니다.
or 연산은 하나 이상의 True가 존재할 때 True를 가지며, 모든 값이 False일 때 False를 가집니다.
not 연산은 값이 True일 때 False를, False일 때 True를 가집니다.

True and False
# False


Boolean 타입의 결과는 and, or, not 연산자 외에도 나타납니다. >(초과), >=(이상), <(미만), <=(이하), ==(같다), !=(같지 않다) 등의 연산자에서도 True 또는 False의 결과가 나옵니다.

print(45 > 34)
print(45 < 34)
print(23.1 >= 23)
print(23.1 <= 23)
print(67.3 == 87)
print(67.3 != 87)
# True
# False
# True
# False
# False
# True

True와 False는 정수, 실수, 문자열에도 적용 가능합니다.
0, 0.0, ‘’, ““은 False로, 이 외에는 True로 처리됩니다.

print(not 0)
print(not 0.0)
print(not 1)
print(not -2.69)
print(not '')
print(not "")
print(not ' ')
print(not "Mukho")
# True
# True
# False
# False
# True
# True
# False -> 공백은 비어있는 문자열이 아닙니다.
# False


아스키 코드

크기를 비교하는 연산은 문자열에서도 가능합니다.
우리가 컴퓨터에서 보는 문자들은 모두 문자로 보이지만, 사실 컴퓨터는 문자를 숫자로 처리하고 있습니다. 이것을 인코딩(Encoding)이라고 합니다. 이 중 대표적인 것으로 ASCII(American Standard Code for Information Interchange)가 있습니다. 아스키는 영어와 기호를 8bit로 표현하는 것입니다. 컴퓨터는 문자와 기호 등을 숫자로 표현하고 있기 때문에 문자열 간에도 크기 비교를 진행할 수 있습니다.

print('A' < 'a')
print('A' > 'Z')
print('abc' > 'def')
print('C++' < 'Python')
print('Javascript' > 'Python')
print('GO' < 'Python')
# True
# False
# False
# True
# False
# True


그렇다면 우리는 특정 문자가 아스키 코드로 몇 번인지 어떻게 알까요? 파이썬에는 ord(), chr()함수가 존재합니다.
ord() 함수는 특정한 한 문자를 아스키 코드 값으로 변환해 주는 함수입니다.
chr() 함수는 아스키 코드 값을 문자로 변환해 주는 함수입니다.

print(ord('A'))
print(ord('a'))
print(chr(90))
print(chr(122))
# 65
# 97
# Z
# z

보통 아스키 코드 값을 이용하는 문제의 경우 대문자 A와 소문자 a의 아스키 코드 값을 외우고 있을 때 편하게 풀 수 있습니다.
A는 65, a는 97 입니다. ‘A와 a’를 통해 ‘Z와 z’를 구하기 위해서는 ‘A와 a’의 아스키 코드 값에 25를 더해주면 됩니다.(영문자는 총 26개)
다른 기호들이 어떤 아스키 코드 값을 갖는지는 여기서 확인해보실 수 있습니다.

다음 시간에는 조건문에 대해 알아보겠습니다.
그럼.. 바위^^