Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
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
Tags
more
Archives
Today
Total
관리 메뉴

후레임의 프로그래밍

파이썬에 삼항 조건 연산자가 있습니까? 본문

스택오버플로우(Stack Overflow)

파이썬에 삼항 조건 연산자가 있습니까?

후레임 2020. 10. 26. 13:15
질문

 

Python에 삼항 조건 연산자가없는 경우 다른 언어 구조를 사용하여 시뮬레이션 할 수 있습니까?



답변

예, 추가됩니다. 표현식 구문은 다음과 같습니다.

a if condition else b

첫 번째 조건이 평가 된 다음 a또는 b중 정확히 하나가 조건의 : //en.wikipedia.org/wiki/Boolean_data_type "rel ="noreferrer "title ="Boolean data type "> bool 값. conditionTrue로 평가되면 a가 평가되고 반환되지만 b는 무시되거나 b는 평가되고 반환되지만 a는 무시됩니다.

condition이 참일 때 a만 평가되고 b는 전혀 평가되지 않고 조건이 평가되기 때문에 단락이 허용됩니다. >condition이 false이면 b만 평가되고 a는 전혀 평가되지 않습니다.

 

예 :

>>> 'true' if True else 'false'
'true'
>>> 'true' if False else 'false'
'false'

조건문은 이 아니라 표현식입니다. 즉, 조건부 표현식내에서 할당 문이나 pass또는 기타 을 사용할 수 없습니다.

>>> pass if False else x = 3
  File "<stdin>", line 1
      pass if False else x = 3
                ^
                SyntaxError: invalid syntax
                

그러나 조건식을 사용하여 다음과 같이 변수를 할당 할 수 있습니다.

x = a if True else b

조건식을 두 값 사이를 전환하는 것으로 생각하십시오. '하나의 가치 또는 다른 가치'상황에 있을 때 매우 유용하지만 다른 기능은 많이하지 않습니다.

문을 사용해야하는 경우 조건부 표현식대신 일반 if을 사용해야합니다.


몇 가지 이유로 인해 일부 Pythonistas에 의해 눈살을 찌푸리는 것을 명심하십시오.

  • 인수의 순서가 고전적인 조건의 순서와 다릅니다.? a : b다른 많은 언어 (예 : C, C ++, Go, Perl, Ruby, Java, Javascript 등)의 삼항 연산자. Python의 "놀라운"동작에 익숙하지 않은 사람들이이를 사용하면 버그가 발생할 수 있습니다. (인수 순서를 바꿀 수 있습니다).
  • 어떤 사람들은 그것이 정상적인 생각의 흐름 (상태를 먼저 생각한 다음 그 효과를 생각하는 것)에 어긋나 기 때문에 "다루기 어렵다"고 생각합니다.
  • 문체적인 이유. ( '인라인 if'이 정말유용하고 스크립트를 더 간결하게 만들 수 있지만 실제로 코드를 복잡하게 만듭니다)

주문을 기억하는 데 문제가있는 경우 큰 소리로 읽을 때 (거의) 의미를 말하는 것을 기억하십시오. 예를 들어 x = 4 if b > 8 else 9는 x will be 4 if b is greater than 8 otherwise 9.

 

공식 문서 :



출처 : https://stackoverflow.com/questions/394809