티스토리 뷰

 

안녕하세요 탐구소년입니다.

시간날 때마다 틈틈이 파이썬 문법이나 모듈과 관련된 글을 올리고 있는데요. 오늘은 삼항연산자에 대한 내용을 준비해봤습니다. 정의 및 기본 사용법, 그리고 예제 순서로 정리해보도록 하겠습니다. 바로 시작합니다. 

 

삼항연산이란?

 

삼항연산자를 사용해보기 전에, 삼항연산의 의미를 알아야 할 필요가 있습니다. 

삼항연산은 이름 그대로 세 개의 항을 사용하는 연산입니다. 각 항은 조건, 1항, 그리고 2항으로 역할이 나뉩니다.

삼항연산은 조건의 참, 또는 거짓 여부에 따라 1항이나 2항 중 한 가지만 결과로 도출되어지는 연산입니다. 조건의 결과를 판단한 다음, 결과에 따라 다른 결과를 도출할 수 있도록 고안된 연산이 바로 삼항연산인 것입니다. 모든 항은 각각 식 또는 값으로 구성될 수가 있습니다. 

 

 

삼항연산자란?

 

말할 것도 없이, 삼항연산 공식에 사용되는 연산자를 삼항연산자라고 합니다. 뒤에서도 나오겠지만, if, else, and, or 등의 파이썬 키워드가 삼항연산자로 사용됩니다. 파이썬에서는 두 가지 형태의 삼항연산식을 사용할 수가 있습니다. 

 

 

파이썬 삼항연산의 두 가지 기본 형태 및 예제

 

먼저 첫 번째 형태입니다. 

 

result = condition and when True or when False

and 연산자와 or 연산자를 사용한 삼항연산식입니다.

위 식에서 삼항은 condition, when True, when False 입니다. condition이 조건으로 제시가 되고 이 조건의 결과(참 또는 거짓)에 따라 result 변수에는 when True 또는 when False가 기억되는 것입니다. 조건이 참일 경우에는 and 연산자 뒤에 위치한 when True가 이 연산의 결과로 도출될 것이고, 조건이 거짓일 경우에는 or 연산자 뒤에 위치한 when False가 결과로 도출될 것입니다. 

 

이에 대한 간단한 예제를 보도록 하겠습니다.

 

result1 = 10 > 5 and "참" or "거짓"
# 이 경우 result1 변는 "참" 문자열을 참조한다(저장한다).

result2 = 10 < 5 and "참" or "거짓"
# 이 경우 result2 변는 "거짓" 문자열을 참조한다(저장한다).

print(result1) #참
print(result2) #거짓

예제에서 result1 의 결과를 도출하는 삼항연산부터 보겠습니다. 

조건(condition) 항으로 10>5 라는 비교식이 등장했습니다. 이러한 비교식은 결과가 참 또는 거짓으로 나타나게 되는데, 이 경우 조건은 참이 되므로 and 연산자 뒤에 나온 1항 "참"이 결과로 도출됩니다. 2항인 "거짓"은 무시하게 됩니다. 

result2에 대한 삼항연산식도 형태가 거의 같습니다. 다만 조건의 결과가 정반대이므로 2항이 결과로 도출됩니다. 

 

 

두번째 형태입니다. 

 

result = when True if condition else when False

파이썬 키워드인 if 와 else 를 사용한 삼항연산식입니다. 

조건과 1항, 그리고 2항이 각 항이라는 사실은 첫번째 형태와 같지만, 사용된 연산자(키워드)가 다르고 항들의 배치 순서가 다르다는 점이 눈에 띕니다. 그러나 이 경우에도 기본적인 원리는 동일합니다. 조건(condition)이 참일 경우에는 when True가, 거짓일 경우에는 When False가 결과로 도출되어 result에 저장됩니다. 

 

예제입니다.

 

result1 = "참" if 10 > 5 else "거짓"
# 이 경우 result1 변는 "참" 문자열을 참조한다(저장한다).

result2 = "참" if 10 < 5 else "거짓"
# 이 경우 result2 변는 "거짓" 문자열을 참조한다(저장한다).

print(result1) #참
print(result2) #거짓

result1에 대한 라인만 보겠습니다. 

이 경우 "참"이 제일 앞에 나왔는데, if를 사용한 삼항연산식이므로 이 "참"은 조건이 참일 경우 도출될 결과인 것입니다. 그 다음 if 뒤에 조건이 나온 게 보이실 겁니다. 이 때 조건은 10>5 라는 비교식으로, 이 조건의 결과는 참입니다. 따라서 결과로는 "참"이 도출되면서 삼항연산은 끝이 납니다. else 뒤의 값은 조건이 거짓일 경우의 결과이므로 무시됩니다. 

 

마무리

 

여기까지 해서 파이썬 삼항연산 및 삼항연산자에 대한 정리를 마칩니다. 예제에서 사용된 비교식(>, <)이나 문자열 자료형에 대한 설명은 전혀 작성하지 않았기 때문에 기초적인 지식이 전혀 없는 분들은 이해하기 조금 어려우셨을 수 있습니다.

삼항연산은 주어진 조건의 결과에 따라 다른 결과를 도출해낼 수 있는 매우 유용한 기법(?)이므로 잘 익혀두면 매우 요긴하게 사용할 수 있습니다. 그러니 조금 어려우시더라도 자주자주 사용하시면서 익숙해지는 편이 좋습니다(정말정말 쓸모있답니다).

끝입니다. 그럼 오늘은 여기까지만 하고요. 이만 마치도록 하겠습니다. 감사합니다. 

 

 

댓글
공지사항