스택큐힙리스트

파이썬에는 삼항 조건 연산자가 있나요? 본문

카테고리 없음

파이썬에는 삼항 조건 연산자가 있나요?

스택큐힙리스트 2023. 3. 10. 21:03
반응형

이 게시물을 개선하고 싶으세요? 이 질문에 대해 세부적인 답변을 제공하면서 인용 및 답변이 올바름을 설명해주세요. 충분한 설명이 없는 답변은 편집 또는 삭제될 수 있습니다.

파이썬에서 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 , line 1

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 , line 1

SyntaxError: cannot assign to conditional expression

>>> # If we parenthesize it instead...

>>> (x = 1) if False else (y = 2)

File , line 1

(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 문을 사용하여 조건문을 작성할 수도 있습니다. 하지만 삼항 조건 연산자를 사용하면 코드를 간결하게 작성할 수 있으며 가독성도 높일 수 있습니다.

따라서 파이썬 개발자라면 삼항 조건 연산자를 활용하여 코드를 작성하면 더욱 효율적인 코드를 만들 수 있습니다.

반응형
Comments