티스토리 뷰
삼항 연산자 (삼항 표현식)
if-else 조건식을 한 줄로 간결하게 표현할 수 있다. 코드를 줄이는데 용이하게 사용할 수 있지만 조건식이 복잡한 경우에는 가독성을 떨어뜨릴 수 있니 적절한 경우에 사용하는 것이 좋다. 이번 포스팅에서는 삼항 표현식 문법의 사용 예시와 중첩 삼항 표현식에 대해서 정리해본다.
- 순서 -
1. 삼항 표현식 문법
2. 중첩 삼항 표현식
3. 정리
1. 삼항 표현식 문법
true_value if condition else false_value
condition의 Boolean 값을 기반으로 반환된다. if조건식의 condition값이 True이면 true_value를 반환하고 False이면 false_value를 반환한다. 위와 같은 식을 삼항표현식과 if - else 조건식으로 작성해보는 예시는 아래와 같다.
삼항 표현식과 if-else 조건식 비교
# 삼항표현식
value = true_value if condition else false_value
# if-else 조건식
if condition:
value = treue_value
else:
value = false_value
같은 결과를 출력하지만 삼항 표현식을 사용할 때 코드를 간결하게 작성할 수 있다. 위와 같은 조건식에 직접 값을 대입해서 사용해보면 아래와 같다. 삼항표현식과 if-else 조건식이 같은 결과를 도출하지만 표현하는 방식이 달라진다. 코드는 숫자 10을 기준으로 10이면 ten을 10이 아니면 not ten을 출력하도록 작성하고서 삼항 표현식과 if-else 조건식을 비교해 보았다.
# 삼항표현식
>>> n = 10
>>> value = 'ten' if n == 10 else 'not ten'
ten
# if-else 조건식
>>> n = 1
>>> if n == 10:
>>> value = 'ten'
>>> else:
>>> value = 'not ten'
not ten
2. 중첩 삼항 표현식
중첩 삼항 표현식은 이름 그대로 삼항 표현식을 중첩된 표현식으로 작성하는 코드이다. 두 개 이상의 if 조건식을 한 줄로 작성할 수 있다. 기본적인 작성 방법은 아래와 같다. 대괄호는 임의로 보기 편하게 하려고 표시한 것이다. 실제로 코드를 작성할 때는 [ ] 괄호는 빼야 한다.
true_value if condition1 else [ true_value2 if condition2 else false_value ]
if조건식의 condition1 값이 True이면 true_value를 반환하고 False이면 두 번째 조건식의 Boolean 값을 반환한다. condition2의 값이 True이면 true_value2를 False이면 false_value를 반환한다.
위의 삼항 중첩 삼항 표현식을 코드로 작성해보면 아래와 같다. 이번에는 임의의 수가 입력 될 때 숫자가 10이면 ten, 10보다 작으면 low, 10보다 크면 high를 출력하는 코드를 작성해보았다.
# 삼항표현식
>>> n = 10
>>> value = 'ten' if n == 10 else 'low' if n < 10 else 'high'
ten
# if-else 조건식
>>> n = 1
>>> if n != 10:
>>> if n < 10 :
>>> value = 'low'
>>> else:
>>> value = 'high'
>>> else:
>>> value = 'ten'
low
if-else 조건식으로 작성하면 여러줄에 걸쳐서 작성해야 하는데 비해 삼항 표현식은 한 줄로 작성할 수가 있다. 간편하게 사용이 가능하다. if-else 조건식은 if-elif-else 조건식으로 작성도 가능하다.
3. 정리
1) if조건식을 삼항연산자(삼항표현식)를 이용하여 한 줄로 간단하게 작성할 수 있다.
2) 삼항표현식의 기본적인 작성방법은 " true_value if condition else false_value " 형태이다.
3) 삼항표현식은 조건식이 중첩된 경우에도 작성할 수 있다. 중첩 삼항 표현식의 작성방법은 "true_value if condition1 elsetrue_value2if condition2 else false_value " 형태이다.
'파이썬 스킬업 > 파이썬 함수 & 문법' 카테고리의 다른 글
파이썬 append( ), extend( ), insert( ) 함수 차이 / 요소추가함수 비교 (Python) (1) | 2020.07.25 |
---|---|
파이썬 집합자료형 set 연산 : 합집합, 교집합, 차집합 (0) | 2020.07.20 |
파이썬 아스키코드 변환 함수 ord( ), chr( ) (Python) (0) | 2020.07.20 |