bool()
✅ 정수가 입력되었을 때, True/False로 평가해 주는 프로그램을 작성해 보자.
n = int(input())
print(bool(n))
bool( )
을 이용하면 입력된 식이나 값을 평가해 불 형의 값(True 또는 False)을 출력해 준다.
식이나 값을 계산해서 결괏값이 만들어지는 것을 평가(evaluate)라고 한다.
python 언어에서 정수값 0은 False(거짓)로 평가되고, 그 외의 값들은 모두 True(참)로 평가된다.
불 대수(boolean algebra)는 수학자 불이 만들어낸 것으로 True(참)/False(거짓) 값만 가지는 논리값과 그 값들 사이의 연산을 다룬다.
not
✅ 정수값이 입력될 때, 그 불 값을 반대로 출력하는 프로그램을 작성해 보자.
n = bool(int(input()))
print(not n)
n = bool(int(input()))
와 같은 형태로 겹쳐 작성하면, 한 번에 한 단계씩 계산/처리/평가된다.
위와 같은 명령문의 경우 input( )
, int( )
, bool( )
순서로 한 번에 한 단계씩 계산/처리/평가된다.
어떤 불 값이나 변수에 not True, not False, not a와 같은 계산이 가능하다.
참 또는 거짓의 논리값을 역(반대)으로 바꾸기 위해서 not 예약어(reserved word, keyword)를 사용할 수 있다.
이러한 논리연산을 NOT 연산(boolean NOT)이라고도 부르고,
프라임 '(문자 오른쪽 위에 작은따옴표), 바(기호 위에 가로 막대), 문자 오른쪽 위에 c(여집합, complement) 등으로 표시한다. 모두 같은 의미이다.
참, 거짓의 논리값 인 불(boolean) 값을 다루어주는 예약어는 not, and, or 이 있고,
불 값들 사이의 논리(not, and, or) 연산 결과도 마찬가지로 True 또는 False의 불 값으로 계산된다.
정수값 0은 False이고, 나머지 정수 값들은 True로 평가된다.
빈 문자열 "" 나 ''는 False 이고, 나머지 문자열들은 True 로 평가된다.
and
✅ 2개의 정수값이 공백을 두고 입력될 때, 그 불 값이 모두 True 일 때에만 True를 출력하는 프로그램을 작성해 보자.
a, b = input().split()
a = bool(int(a))
b = bool(int(b))
print(a and b)
and 예약어는 주어진 두 불 값이 모두 True 일 때에만 True로 계산하고, 나머지 경우는 False로 계산한다.
이러한 논리연산을 AND 연산(boolean AND)이라고도 부르고, · 으로 표시하거나 생략하며, 집합 기호 ∩(교집합, intersection)로 표시하기도 한다. 모두 같은 의미이다.
or
✅ 2개의 정수값이 공백을 두고 입력될 때, 그 불 값이 하나라도 True 일 때 True를 출력하는 프로그램을 작성해 보자.
a, b = input().split()
a = bool(int(a))
b = bool(int(b))
print(a or b)
or 예약어는 주어진 두 불 값 중에서 하나라도 True 이면 True로 계산하고, 나머지 경우는 False로 계산한다.
이러한 논리연산을 OR 연산(boolean OR)이라고도 부르고, + 로 표시하거나, 집합 기호 ∪(합집합, union)로 표시하기도 한다. 모두 같은 의미이다.
xor
✅ 2개의 정수값이 공백을 두고 입력될 때, 그 불 값이 서로 다를 때에만 True를 출력하는 프로그램을 작성해 보자.
a, b = input().split()
a = bool(int(a))
b = bool(int(b))
print((a and not b) or (not a and b))
✅ 2개의 정수값이 공백을 두고 입력될 때, 그 불 값이 서로 같을 때에만 True를 출력하는 프로그램을 작성해 보자.
a, b = input().split()
a = bool(int(a))
b = bool(int(b))
print((a and b) or (not a and not b))
참 거짓이 서로 다를 때에만 True로 계산하는 논리연산을 XOR(exclusive or, 배타적 논리합) 연산이라고도 부른다.
논리연산자는 사칙(+, -, *, /) 연산자와 마찬가지로 여러 번 중복해서 사용할 수 있는데,
사칙 연산자와 마찬가지로 계산 순서를 표시하기 위해 괄호 ( )를 사용할 수 있다.
괄호를 사용하면 계산 순서를 명확하게 표현할 수 있다.
수학 식에서는 소괄호 (), 중괄호 {}, 대괄호 []를 사용하기도 하지만, 프로그래밍언어에서는 소괄호( )만 사용한다.
'Python' 카테고리의 다른 글
[Python] 비트 쉬프트 연산 <<, >> (0) | 2021.04.08 |
---|---|
[Python] 실수 소수점 이하 반올림해서 출력하기 (0) | 2021.04.08 |
[Python] 문자열 포맷 코드, 포맷팅 예시 (0) | 2021.04.07 |
[Python] 스택 / 큐 (0) | 2021.04.06 |
[Python] 문자열 (String) (0) | 2021.03.29 |