* 전체 코드
## 삼항연산자 기본
a=10
print("a is big" if a > 5 else "a is small")
# 출력: a is big
## 중첩 삼항연산자
a = 3
print("a is big" if a > 5 else "삼위일체" if a==3 else "a is small")
# 출력: 삼위일체
## 함수와 함께 삼항연산자
def test(p):
print(f"a is {p}")
a=10
test("king") if a > 5 else test("god")
# 출력: a is king
1. 배경
python에는 if else 조건문을 한 줄로 쓸 수 있는 삼항 연산자가 있습니다. 아래와 같은 간단한 문법으로 사용합니다.
[참일 때] if [조건문] else [거짓일 때]
기본적인 사용법과 2 가지 활용법을 알아보겠습니다.
2. 삼항 연산자 사용법
a=10
print("a is big" if a > 5 else "a is small")
a가 숫자 10일 때, 삼항 연산자의 구성은 아래와 같습니다.
[조건문] : a > 5
[참일 때] : "a is big"
[거짓일 때]: "a is small"
a가 10보다 크므로, 조건문이 참일 때인 "a is big"을 출력합니다.
* 출력
3. 삼항 연산자 활용
1) 삼항 연산자 중첩하기
삼항 연산자 if else를 여러 번 중첩할 수 있습니다. 조건문이 2개일 때 중첩된 삼항 연산은 아래와 같습니다.
[조건문1 참] if [조건문1] else [조건문1 거짓 and 조건문2 참] if [조건문2] else [조건문2 거짓]
복잡해 보이니, 간단한 예시와 함께 보겠습니다.
a = 3
print("a is big" if a > 5 else "삼위일체" if a==3 else "a is small")
위 코드는 아래와 같이 풀이됩니다.
a가 5보다 크면 : "a is big"
a가 5보다 작거나 같고, 3이면: "삼위일체"
a가 5보다 작거나 같고, 3이 아니면: "a is small"
* 출력
이렇게 삼항 연산자를 중첩하면 마치 if elif else와 같은 꼴이 됩니다. 위 중첩된 삼항 연산 코드는 아래 if elif else코드로 바꿔 쓸 수 있습니다.
if a > 5:
print("a is big")
elif a==3:
print("삼위일체")
else:
print("a is small")
* 출력
2) 함수와 함께 삼항 연산자 사용
삼항 연산에서 [참일 때], [거짓일 때] 부분에 단순히 python의 자료형인 문자열, 숫자만 쓸 수 있는 게 아니고, 실행 가능한 함수를 쓸 수 도 있습니다.
def test(job):
print(f"a is {job}")
a=10
test("king") if a > 5 else test("god")
test함수는 인자로 job을 입력받아, f-string을 통해 a is {job}으로 출력합니다. a=10이고, 삼항 연산의 구성은 아래와 같습니다.
( f-string 개념: [Python] f-string 포맷팅 (소수점, 퍼센트, 부동소수점))
[조건문] : a > 5
[참일 때] : test("king")
[거짓일 때]: test("god")
참이므로 test("king")이 실행되고 test함수 내부에서 "a is king"이 출력됩니다.
* 출력
이상으로 Python 삼항 연산자의 기초 개념과 활용법을 알아보았습니다.
다음에 더욱 재미있고 알찬 내용으로 찾아오겠습니다.
읽어주셔서 감사합니다.
* 위의 실습 코드는 아래의 깃허브에 모두 정리해두었습니다.
Reference)
python logo: https://commons.wikimedia.org/wiki/File:Python_logo_and_wordmark.svg
'Programming > Python 기초' 카테고리의 다른 글
[Python] 얕은복사와 깊은복사 개념&예시 (shallow copy, deep copy) (0) | 2022.07.10 |
---|---|
[Python] Counter 란? (0) | 2020.11.13 |
[Python] map 함수란? 활용법(lambda) (0) | 2020.10.25 |
[Python] Ordered dict 이란 (0) | 2020.09.20 |
[Python] 딕셔너리: 키(key) 값(value) 바꾸기(swap) (0) | 2020.09.16 |