티스토리 뷰
[63]
📖question
입력된 두 정수 a, b 중 큰 값을 출력하는 프로그램을 작성해보자.
단, 조건문을 사용하지 않고 3항 연산자 'and or' 를 사용한다.
Tip::
파이썬에서의 3항(세 개의 요소로 이루어지는) 연산자는 다른 언어와 사용 방식이 다소 다르다.
타 언어 : "조건식 ? (참일 때의 값) : (거짓일 때의 값)”
- 파이썬에서의 3항(ternary) 연산자는 "조건식 and (참일 때의 값) or (거짓일 때의 값)” 의 형태로 사용하는 연산자이다.
- 조건식의 계산 결과가 참인 경우에는 'and' 오른쪽의 값 또는 식으로 바뀌고,
- 거짓인 경우에는 'or' 오른쪽의 값 또는 식으로 바뀐다.
- 이것이 가능한 이유는 파이썬이 인터프리터 방식으로 동작하기 때문이다.
✍️answer
a, b = map(int, input().split())
print(a > b and a or b)
[64]
📖question
입력된 세 정수 a, b, c 중 가장 작은 값을 출력하는 프로그램을 작성해보자. (단, 삼항 연산자 이용)
Tip::
- 파이썬에서는 논리연산을 이용한 삼항 연산자 외에 if-else를 이용한 삼항 연산도 제공한다. 이러한 이유는 논리연산을 이용한 삼항연산 때 발생할 수 있는 오류가 있기 때문이다.
- 3항 논리 연산의 오류 : 5==5 and 5-5 or 5+5 >> 10
- 위 연산에서는 5==5가 참이기 때문에 5-5가 실행되어 0이 출력되는 것이 맞다. 그러나 10이 출력된다. 이유는 논리 연산의 특성 때문이다.
- 위 구문을 크게 따져보면 (True and false) or true 로 표현할 수 있다. 따라서 앞의 (True and false)가 false가 되므로 or 오른쪽에 true 값인 10이 출력된 것이다.
- if-else를 이용한 삼항 연산은 "(참일 때의 값) if (조건식) else (거짓일 때의 값)"으로 나타낼 수 있다.
- 삼항 연산자는 중첩하여 이용할 수 있다.
✍️answer
a, b, c = map(int, input().split())
min = a if a < b else b
min = min if min < c else c
print(min)
[우리밋이 알려주는 Bonus 문제 (3)]
📖question
1개의 정수형 입력이 들어오면 삼항 연산을 이용하여 '홀수'와 '짝수'를 판별하여라
Tip::
- 입력이 2로 나눠지면 짝수이고, 그렇지 않으면 홀수임을 이용한다.
- 파이썬에서의 논리연산인 AND와 OR의 특징(Chapter 8 참고)을 이용한다. => 파이썬에서는 이러한 연산을 "삼항 연산"으로 정의한다.
Tip2::
- 입력이 2로 나눠지면 짝수이고, 그렇지 않으면 홀수임을 이용한다.
- 파이썬에서의 삼항 연산은 if-else로도 구현할 수 있다.
✍️answer
a = int(input())
print(a % 2 and "홀수" or "짝수")
a = int(input())
print("홀수" if a % 2 else "짝수")
'Python > 코드업 기초 100제' 카테고리의 다른 글
12. 반복실행구조 (0) | 2022.05.15 |
---|---|
11. 조건/선택실행구조 (0) | 2022.05.15 |
9. 비트단위 논리연산 (0) | 2022.05.15 |
8. 논리연산 (0) | 2022.05.15 |
7. 비교연산 (0) | 2022.05.15 |
댓글