티스토리 뷰
[53]
📖question
1(true, 참) 또는 0(false, 거짓) 이 입력되었을 때 반대로 출력하는 프로그램을 작성해보자.
**참고**
파이썬에서 비교/관계 연산(==, !=, >, <, >=, <=)이 수행될 때,
0은 거짓(false)으로 인식되고, 0이 아닌 모든 수는 참(true)으로 인식된다.
참 또는 거짓의 논리값을 역(반대)으로 바꾸기 위해서는
논리(logical)연산자 'not'를 사용할 수 있다.
이러한 논리연산을 NOT 연산이라고 부른다.
참, 거짓의 논리값(boolean value)인 불 값을 다루어주는 논리연산자는
'not', 'and', 'or'가 있다.
** 불 대수(boolean algebra)는 수학자 불이 만들어낸 것으로
참/거짓만 가지는 논리값과 그 연산을 다룬다.
Tip::
- 참 또는 거짓의 논리값을 역(반대)으로 바꾸기 위해서는 논리(logical)연산자 'not'를 사용할 수 있다.

✍️answer
a = int(input())
print(not a)
[54]
📖question
두 개의 참(1) 또는 거짓(0)이 입력될 때, 모두 참일 때에만 참을 출력하는 프로그램을 작성해보자.
Tip::
- 파이썬에서는 AND연산값이 참이면 뒤에 있는 값을 출력하게 된다.
- ex) '앞' and '뒤' >> '뒤'
✍️answer
a, b = map(int, input().split()) # 참은 0이 아닌 수
if a != 0 and b != 0:
print(a, b)
else:
print('false값이 있음')
[55]
📖question
두 개의 참(1) 또는 거짓(0)이 입력될 때, 하나라도 참이면 참을 출력하는 프로그램을 작성해보자.
Tip::
- 파이썬에서는 OR연산값이 참이면 참인 값을 출력하게 된다.
- ex) '참' or 0 >> '참
- ex) 0 or True >> True
✍️answer
a, b = map(int, input().split()) # 참은 0이 아닌 수
if a and b: # a만 쓰면 참이다
print(a, b)
elif a or b:
print(a or b)
else:
print('둘 다 false')
[우리밋이 알려주는 Bonus 문제 (1)]
📖question
1개의 정수형 입력이 들어오면 논리 연산을 이용하여 '홀수'와 '짝수'를 판별하여라
Tip::
- 입력이 2로 나눠지면 짝수이고, 그렇지 않으면 홀수임을 이용한다.
- 파이썬에서의 AND와 OR의 특징을 이용한다. => 파이썬에서는 이러한 연산을 "삼항 연산"으로 정의한다.(삼항연산은 Chapter 10에서 다룬다)
✍️answer
# 나의 풀이
a = int(input())
if a % 2 == 0:
print('짝수')
else:
print('홀수')
# 의도한 풀이
a = int(input())
print(a % 2 and '홀수' or '짝수')
# 5이면 true and true이므로 뒤의 값을 출력해서 홀수
# 8이면 false and true이므로 0(false)출력, false or true이므로 뒤의 값을 출력해서 짝수
[56]
📖question
두 가지의 참(1) 또는 거짓(0)이 입력될 때, 참/거짓이 서로 다를 때에만 참을 출력하는 프로그램을 작성해보자.
Tip::
- 이러한 논리연산을 XOR(exclusive or, 배타적 논리합)연산이라고도 부른다. 이를 표현하기 위해서는 (a AND (NOT b)) OR ((NOT a) AND b)처럼 하면 된다.
✍️answer
a, b = map(int, input().split())
print((a and (not b)) or ((not a) and b))
# 1,0이면 (1 and 1) or (0 and 0) = true or false = ture
# 1,1이면 (1 and 0) or (0 and 1) = false or false = false
[57]
📖question
두 개의 참(1) 또는 거짓(0)이 입력될 때, 참/거짓이 서로 같을 때에만 참이 계산되는 프로그램을 작성해보자.
Tip::

✍️answer
a, b = map(int, input().split())
print(((not a) and (not b)) or (a and b))
[58]
📖question
두 개의 참(1) 또는 거짓(0)이 입력될 때, 모두 거짓일 때에만 참이 계산되는 프로그램을 작성해보자.
Tip::

✍️answer
a, b = map(int, input().split())
print(not(a or b))
'Python > 코드업 기초 100제' 카테고리의 다른 글
10. 삼항연산 (0) | 2022.05.15 |
---|---|
9. 비트단위 논리연산 (0) | 2022.05.15 |
7. 비교연산 (0) | 2022.05.15 |
6. 비트 시프트 연산 (0) | 2022.05.14 |
5. 산술 연산 (0) | 2022.05.13 |
댓글