Q53 ▶ 1(true, 참) 또는 0(false, 거짓) 이 입력되었을 때
반대로 출력하는 프로그램을 작성해보자.
Tip
파이썬에서 비교/관계 연산(==, !=, >, <, >=, <=)이 수행될 때,
0은 거짓(false)으로 인식되고, 0이 아닌 모든 수는 참(true)으로 인식된다.
참 또는 거짓의 논리값을 역(반대)으로 바꾸기 위해서는
논리(logical)연산자 'not'를 사용할 수 있다.
이러한 논리연산을 NOT 연산이라고 부른다.
참, 거짓의 논리값(boolean value)인 불 값을 다루어주는 논리연산자는
'not', 'and', 'or'가 있다.
** 불 대수(boolean algebra)는 수학자 불이 만들어낸 것으로
참/거짓만 가지는 논리값과 그 연산을 다룬다.
boolean = int(input())
print( not boolean )
Q54 ▶ 두 개의 참(1) 또는 거짓(0)이 입력될 때, 모두 참일 때에만 참을 출력하는 프로그램을 작성해보자.
Tip
파이썬에서는 AND연산값이 참이면 뒤에 있는 값을 출력하게 된다.
ex) '앞' and '뒤' >> '뒤'
for _ in range(4):
a, b = map(int, input().split())
print( a and b )
Q55 ▶ 두 개의 참(1) 또는 거짓(0)이 입력될 때,
하나라도 참이면 참을 출력하는 프로그램을 작성해보자.
Tip
파이썬에서는 OR연산값이 참이면 참인 값을 출력하게 된다.
ex) '참' or 0 >> '참
ex) 0 or True >> True
for i in range(4):
a, b = map(int, input().split())
print( a or b )
Q55+ ▶ 1개의 정수형 입력이 들어오면 논리 연산을 이용하여 '홀수'와 '짝수'를 판별하여라
Tip
입력이 2로 나눠지면 짝수이고, 그렇지 않으면 홀수임을 이용한다.
파이썬에서의 AND와 OR의 특징을 이용한다. => 파이썬에서는 이러한 연산을 "삼항 연산"으로 정의한다.
number = int(input())
print( number%2 and '홀수' or '짝수' )
파이썬에서의 3항(세 개의 요소로 이루어지는) 연산자(삼항연산)는 다른 언어와 사용 방식이 다소 다르다.
타 언어 : "조건식 ? (참일 때의 값) : (거짓일 때의 값)”# 파이썬에서의 3항(ternary) 연산자는
"조건식 and (참일 때의 값) or (거짓일 때의 값)” 의 형태로 사용하는 연산자이다.
조건식의 계산 결과가 참인 경우에는 'and' 오른쪽의 값 또는 식으로 바뀌고,
거짓인 경우에는 'or' 오른쪽의 값 또는 식으로 바뀐다.
이것이 가능한 이유는 파이썬이 인터프리터 방식으로 동작하기 때문이다.
Q56 ▶ 두 가지의 참(1) 또는 거짓(0)이 입력될 때, 참/거짓이 서로 다를 때에만 참을 출력하는 프로그램을 작성해보자.
Tip
이러한 논리연산을 XOR(exclusive or, 배타적 논리합)연산이라고도 부른다.
이를 표현하기 위해서는 (a AND (NOT b)) OR ((NOT a) AND b)처럼 하면 된다.
for _ in range(4):
a, b = map(int, input().split())
print( (a and (not b)) or ((not a) and b) )
Q57 ▶ 두 개의 참(1) 또는 거짓(0)이 입력될 때, 참/거짓이 서로 같을 때에만 참이 계산되는 프로그램을 작성해보자.
for _ in range(4):
a, b = map(int, input().split())
print( ((not a) and (not b)) or (a and b) )
Q58 ▶ 두 개의 참(1) 또는 거짓(0)이 입력될 때, 모두 거짓일 때에만 참이 계산되는 프로그램을 작성해보자.
for _ in range(4):
a, b = map(int, input().split())
print( not(a or b) )
'python' 카테고리의 다른 글
10. 기초 - 삼항연산 (코드업 기초 100제) (0) | 2022.01.30 |
---|---|
9. 기초 - 비트단위 논리연산 (코드업 기초 100제) (0) | 2022.01.30 |
7. 기초 - 비교연산 (코드업 기초 100제) (0) | 2022.01.30 |
6. 기초 - 비트 시프트 연산 (코드업 기초 100제) (0) | 2022.01.23 |
5. 기초 - 산술연산 (코드업 기초 100제) (0) | 2022.01.23 |