일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 데이터과학
- Yes
- 소프트웨어공학
- 데이터베이스
- 빅데이터
- 알고리즘
- 네트워크
- 컴퓨터공학
- 데이터분석
- 클라우드컴퓨팅
- 데이터구조
- 컴퓨터과학
- 컴퓨터비전
- 프로그래밍
- 자바스크립트
- 보안
- 버전관리
- 사이버보안
- I'm Sorry
- 인공지능
- 소프트웨어
- 웹개발
- 프로그래밍언어
- 파이썬
- 네트워크보안
- 2
- 코딩
- 머신러닝
- 딥러닝
- 자료구조
- Today
- Total
스택큐힙리스트
파이썬에는 삼항 조건 연산자가 있나요? 본문
이 게시물을 개선하고 싶으세요? 이 질문에 대해 세부적인 답변을 제공하면서 인용 및 답변이 올바름을 설명해주세요. 충분한 설명이 없는 답변은 편집 또는 삭제될 수 있습니다.
파이썬에서 ternary conditional operator이 있나요?
답변 1
네, 버전 2.5에서는 added 했었습니다. 표현식 구문은 다음과 같습니다:
a if condition else b
먼저 condition! 가 평가되고, 그런 다음 oolean val 의 값에 따라 a 또는 b! 중 하나가 평가되고 반환됩니다. 만약 condition! 가 True! 로 평가된다면, a 가 반환되지만 b! 는 무시됩니다. 반대로, b! 가 평가되고 반환된다면 a 는 무시됩니다.
이는 단락 평가를 허용합니다. 왜냐하면 condition!가 참일 때는 a만 평가되고 b!@은 전혀 평가되지 않지만, condition!가 거짓일 때는 a는 전혀 평가되지 않고 b!@만 평가됩니다.
예를 들어:
>>> 'true' if True else 'false'
'true'
>>> 'true' if False else 'false'
'false'
조건문은 표현식입니다. 표현식 안에서는 pass 같은 문장이나 = (또는 += 같은 증감 대입 문장)을 사용할 수 없다는 것에 주의하세요.
>>> pass if False else pass
File
pass if False else pass
^
SyntaxError: invalid syntax
>>> # Python parses this as `x = (1 if False else y) = 2`
>>> # The `(1 if False else x)` part is actually valid, but
>>> # it can't be on the left-hand side of `=`.
>>> x = 1 if False else y = 2
File
SyntaxError: cannot assign to conditional expression
>>> # If we parenthesize it instead...
>>> (x = 1) if False else (y = 2)
File
(x = 1) if False else (y = 2)
^
SyntaxError: invalid syntax
(3.8 버전 이상에서 := 해귀 연산자는 값의 간단한 할당을 표현식으로 허용하며, 그런 다음이 구문과 호환됩니다. 그러나 그러한 코드를 작성하지 마십시오. 그것은 빠르게 이해하기 어려워질 것입니다.)
마찬가지로, 표현이기 때문에 else 부분은 필수적입니다.
# Invalid syntax: we didn't specify what the value should be if the
# condition isn't met. It doesn't matter if we can verify that
# ahead of time.
a if True
하지만 조건 표현식을 사용하여 변수를 할당할 수 있습니다. 예를 들어:
x = a if True else b
혹은 예를 들어, 값을 반환하려면:
# Of course we should just use the standard library `max`;
# this is just for demonstration purposes.
def my_max(a, b):
return a if a > b else b
조건 식은 두 값 사이를 전환하는 것으로 생각해볼 수 있습니다. 우리는 조건이 충족되었는지 여부에 상관없이 결과에 대해 동일한 작업을 수행해야하는 '하나의 값 또는 다른 값' 상황에서 사용할 수 있습니다. 우리는 이 식을 사용하여 값을 계산하고, 그 후 결과물을 처리합니다. 조건에 따라 다른 작업을 수행해야하는 경우, 일반적인 if 문장을 대신 사용하십시오.
일부 파이써니스타들은 몇 가지 이유로 이를 비난하는 것을 염두에 두세요.
인자의 순서는 많은 다른 언어 (예: C)의 전형적인 삼항 연산자와 다르며, Python의 놀라운 동작을 알지 못하는 사람들이 사용할 때 버그가 발생할 가능성이 있으므로 주의해야 합니다 (인자 순서를 뒤집을 수도 있습니다).
일부 사람들은 이것이 생각의 정상적인 흐름(먼저 조건을 생각하고 그 다음 효과를 생각한다)과 반대되기 때문에 다루기 힘들다고 생각합니다.
스타일적 이유입니다. ('인라인 if'는 매우 유용할 수 있고 코드를 더 간결하게 만들지만, 실제로는 코드를 복잡하게 만듭니다.)
순서를 기억하는 데 문제가 있다면, 읽어주는 대로 거의 의도한 대로 말하는 것을 기억하세요. 예를 들어, x = 4 if b > 8 else 9은 (거의) x will be 4 if b is greater than 8 otherwise 9로 읽혀집니다.
공식 문서:
Conditional expressions
Is there an equivalent of C’s ”?:” ternary operator?
답변 2
파이썬이 삼항 조건 연산자를 가지고 있나요?
Python은 Yes입니다! 파이썬은 많은 프로그래밍 언어와 마찬가지로 삼항 조건 연산자 (ternary conditional operator)를 제공합니다. 이 연산자를 사용하면 조건에 따라 값을 할당할 수 있습니다.
삼항 조건 연산자는 짧은 코드로 복잡한 조건문을 처리하는 데 도움을 줍니다. 예를 들어, a가 b보다 크면 x를 할당하고 그렇지 않으면 y를 할당하세요와 같은 구문을 작성할 때 삼항 조건 연산자를 사용할 수 있습니다.
Python에서 삼항 조건 연산자는 다음과 같은 구문을 사용합니다:
```python
a if 조건 else b
```
위 코드는 조건이 참이면 a를 할당하고 그렇지 않으면 b를 할당하세요라는 의미입니다.
다음은 삼항 조건 연산자를 사용한 간단한 예시입니다:
```python
x = 10
y = 5
max_num = x if x > y else y
print(max_num) # 10 출력
```
위 코드는 x와 y 중 더 큰 값을 max_num 변수에 할당합니다. 이때 삼항 조건 연산자를 사용하여 조건문을 간결하게 작성할 수 있습니다.
Python에서는 다른 언어와 마찬가지로 if/else 문을 사용하여 조건문을 작성할 수도 있습니다. 하지만 삼항 조건 연산자를 사용하면 코드를 간결하게 작성할 수 있으며 가독성도 높일 수 있습니다.
따라서 파이썬 개발자라면 삼항 조건 연산자를 활용하여 코드를 작성하면 더욱 효율적인 코드를 만들 수 있습니다.