파이썬에는 c언어와는 다르게 사용자 친화적인 삼항 연산자가 있다.
문법은
참인 경우 값 if 조건 else 거짓인 경우 값
True if Condition else False
a = 10 if 10 > 5 else 5
print(a)
10 > 5가 참이므로 앞의 10이 a에 할당된다.
특별히 어려운 점은 없지만, 간혹 헷갈리는 부분이 있다.
바로 삼항 연산자는 값을 내놔야 한다는 것.....
a = 10 if 10 > 5 else a = 5
print(a)
이런 명령어는
SyntaxError: cannot assign to conditional expression
라는 오류를 출력한다.
즉 expression이 들어가면 안 된다는 뜻이다...!
a = 10 if 10 > 5 else 5라는 문장을 볼 때,
(a = 10) if 10 > 5 else 5라고 생각하면 안 되고,
a = (10 if 10 > 5 else 5) 라고 생각해야 한다.
이것 때문에 개고생했다...ㅠ
번외로 이러한 삼항 연산자도 가능하다.
def func() -> int:
return 10 if 10 > 5 else 5
print(func())
좀 더 명확히 나누면,
def func() -> int:
return (10 if 10 > 5 else 5)
print(func())
따라서 삼항 연산자는 '값'을 반환해야 한다!가 이 글의 결론이다.
'프로그래밍 언어 > Python' 카테고리의 다른 글
[Python] Instance의 Import에 관한 글 (0) | 2022.11.22 |
---|---|
[Vscode] Python Function annotation Theme is not Working (VScode에서 파이썬 타입 어노테이션, 함수 어노테이션, 타입 힌팅에 테마가 적용되지 않는 문제 해결법) (5) | 2022.06.12 |
[Python] namespace와 함수 (전역변수의 참조와 변경, 그리고 오류가 나는 이유) (0) | 2022.05.07 |
[python] repr과 str의 차이 (0) | 2022.05.04 |
[Python] Intellisense와 Document 보이게 하는 법 (0) | 2022.05.03 |