티스토리 뷰

[53]

📖question

1(true, 참) 또는 0(false, 거짓) 이 입력되었을 때 반대로 출력하는 프로그램을 작성해보자.

**참고**
파이썬에서 비교/관계 연산(==, !=, >, <, >=, <=)이 수행될 때,
0은 거짓(false)으로 인식되고, 0이 아닌 모든 수는 참(true)으로 인식된다.

참 또는 거짓의 논리값을 역(반대)으로 바꾸기 위해서는
논리(logical)연산자 'not'를 사용할 수 있다.
이러한 논리연산을 NOT 연산이라고 부른다.

참, 거짓의 논리값(boolean value)인 불 값을 다루어주는 논리연산자는
'not''and''or'가 있다.

** 불 대수(boolean algebra)는 수학자 불이 만들어낸 것으로
참/거짓만 가지는 논리값과 그 연산을 다룬다.

Tip::

  1. 참 또는 거짓의 논리값을 역(반대)으로 바꾸기 위해서는 논리(logical)연산자 'not'를 사용할 수 있다.

✍️answer

a = int(input())
print(not a)

 

[54]

📖question

두 개의 참(1) 또는 거짓(0)이 입력될 때, 모두 참일 때에만 참을 출력하는 프로그램을 작성해보자.

Tip::

  1. 파이썬에서는 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::

  1. 파이썬에서는 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::

  1. 입력이 2로 나눠지면 짝수이고, 그렇지 않으면 홀수임을 이용한다.
  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::

  1. 이러한 논리연산을 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
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday