[ 3항 연산자 ]
C/C++에서 x = [조건]? a : b;
와 같이 사용하던 3항 연산자를
Python에서는 다음과 같이 사용하면 된다!
# ex1
x = a if [조건] else b # True일 때의 값을 먼저 대입 후 if~else
# ex2
[a, b] = [b, a] if a > b else [a, b] # 값 swap (unpacking)
[ cf. 만약 if문만 쓰고 else문은 필요 없는 상황이라면? ]
# ex3
[a, b] = [b, a] if a > b else break # 이건 error! (값 대입 상황)
# ex4
print("hi") if a > b else break # 이건 ok (값 대입이 아닌 print 이므로)
ex3과 같이 값을 대입하는 경우에는 else break를 쓰면 error!
=> [a, b] 에 break라는 예약어를 대입할 수 없으므로!
[ cf. 3항연산자 중첩 (if~elif~else) ]
x = a if [조건1] else b if [조건2] else c
위와 같이 조건이 여러 개 있을 경우에도 3항 연산자로 쓸 수 있다!
위 코드는 아래와 같다.
if [조건1]:
x = a
elif [조건2]:
x = b
else:
x = c
'[ 언어 및 문법 ] > Python' 카테고리의 다른 글
[Python] 얕은 복사🥵 vs 깊은 복사🤗 (0) | 2022.09.03 |
---|---|
[Python] list() vs split() (0) | 2022.08.12 |
[Python] 커스텀 정렬 (cmp_to_key) (0) | 2022.08.10 |
[Python] 정규표현식(re)으로 string에서 문자, 숫자 분리하기 (0) | 2022.08.10 |