본문 바로가기
Programming Language/Python

[Python] 삼항 연산자(Ternary Operator)

by 홍월이_ 2023. 1. 25.

아래 내용들은 제가 혼자 학습하면서 정리한 내용들입니다.

'부족한 내용' 혹은 '잘못된 내용'이 있을 수 있습니다.

댓글 남겨주시면 더욱 공부하고 수정하도록 하겠습니다.

감사합니다.


요즘 PyTorch를 공부하면서 device ‘CUDA’ 설정 때문에 삼항연산자를 자주 사용하게 된다.

다시 파이썬 공부를 시작하면서 좀 더 파이써닉한 코드를 짜려고 노력한 덕분인지 이제는 어느정도 List Comprehension 과 삼항연산자 사용이 자연스러워 진 것 같기도 하다.

 

1. 삼항 연산자(Ternary operators)

삼항 연산자는 if ~ else로 이어지는 조건문 연산을 조금 더 간결하게 표현하기 위한 코드 형태이다.

대부분의 언어에서 삼항연산자를 사용할 수 있다. 파이썬도 삼항연산자를 지원하지만 형태가 조금 다르다.

 

[True Value] if [Condition] else [False Value]

 

참인 경우의 값을 적고 참인 조건을 적으며 그렇지 않을 경우(거짓인 경우)의 값을 입력하는 형태이다.

 

 

2. 삼항 연산자 사용하기

  • 홀수인지 짝수인지 판별해보기
a = 5

# 일반적인 조건문
if a % 2 == 0:
	print("EVEN")
else:
	print("ODD")

# 삼항 연산자
print("EVEN" if a % 2 == 0 else "ODD")

>>> ODD
>>> ODD

위와 예제와 같이 4줄로 판별하는 조건문을 삼항연산자를 사용하면 한 줄로 줄일 수 있다.

 

3. List Comprehension에서 삼항 연산자 사용하기

삼항 연산자는 List Comprehension 내에서도 사용이 가능하다.

먼저 List Comprehension에서 조건문을 사용하는 두 가지 방법이 있다.

  • 짝수만 모으는 List Comprehension
[i for i in range(10) if i % 2 == 0]

>>> [0, 2, 4, 6, 8]

 

  • 짝수는 그대로, 홀수는 0인 값을 만드는 List Comprehension
[i if i % 2 == 0 else 0 for i in range(10)]

>>> [0, 0, 2, 0, 4, 0, 6, 0, 8, 0]

 

if만 쓰는 방법과 if ~ else를 사용하는 삼항연산자 모두 사용이 가능하다.

단 두 문법의 차이점은 조건문을 for문 앞에 쓰냐 뒤에 쓰냐의 차이인데,

if 만 쓰는 경우는 for 문 뒤에 써야하고, if ~ else를 사용하는 경우는 for문 앞에서 사용해야 한다.

반대의 경우는 ‘SyntaxError’ 가 발생한다.

 

...끝

 

 

댓글