파이썬 삼항 연산자

| | | | | | | | | | | | | | | | | | |

파이썬에는 삼항 연산자가 없습니다. 하지만 삼항 연산자처럼 작동하도록 if-else 문 작성을 지원합니다.

파이썬에는 왜 특별한 삼항 연산자가 없나요?

많은 프로그래밍 언어에는 삼항 연산자가 있습니다. 그러나 그들의 주요 목표는 단순한 if-else 블록을 제거하여 코드 크기를 줄이는 것입니다. Python은 추가 문을 추가하는 대신 코드의 크기를 줄이기 위해 if-else 문을 개선했습니다.

Python 구현

파이썬에서 삼항 연산자를 시뮬레이션하는 구문은 다음과 같습니다. /p>

< 스크립트 비동기 src = "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle .js? 클라이언트 = ca-pub-6959883099270890" crossorigin = "anonymous"> < ins class = "adsbygoogle" 스타일 = "디스플레이: 인라인 블록, 너비: 336px, 높이: 280px" data-ad-client = "ca-pub-6959883099270890" data-ad-slot = "3943413939" >

<스크립트 비동기 src = "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-6959883099270890" crossorigin = " 익명">

 [when_true] if [조건] else [when_false] 

If 조건 평가는 True로 평가되고, when_true when_true 이고, 그렇지 않으면 when_false 가 반환됩니다.

예제

정수가 짝수인지 홀수인지 확인하는 간단한 코드가 있다고 가정해 보겠습니다. 사용자에게 숫자를 입력하고 짝수 또는 홀수를 인쇄하도록 요청합니다. if-else 블록으로 이를 수행할 것입니다.

 x = int(input("정수를 입력하세요:")) if x % 2 == 0: int_type = `even` else: int_type =` odd` print (f`입력한 {x}는 {int_type} 정수입니다.`) 

전체 코드 조각은 다음으로 구성됩니다. 6줄, 그 중 4줄은 if-else 블록입니다. 이것은 삼항 if-else 문에 대한 향상된 지원을 활용하기에 완벽한 장소입니다.

 x = int(input("입력하십시오. 정수:")) int_type = `짝수` if x% 2 == 0 else` 홀수` print (f`{int_type} 정수인 {x}를 입력했습니다.`) 

삼항 연산자의 예

튜플이 있는 삼항 연산자

튜플 Python은 삼항 연산자도 지원합니다. 구문은 다음과 같습니다.




 (when_false, when_true) [조건] 

조건이 참이면 첫 번째 값이 반환됩니다. 그렇지 않으면 두 번째 값이 반환됩니다.

삼항 튜플 연산자를 사용하도록 위의 예를 변환해 보겠습니다.

 x = int (input ("정수를 입력하세요:")) int_type = (`even`,` odd`) [x% 2] print (f`{int_type} 정수인 {x}를 입력하셨습니다.`) 

if-else 기반 삼항 연산자를 사용할 때 조건이 먼저 평가됩니다.

튜플 기반 구현에서 튜플의 요소가 먼저 평가되고 조건이 뒤따릅니다.

따라서 가능한 두 값을 모두 생성하기 위해 일부 처리가 필요한 경우 if-else가 더 효율적입니다.

간단한 코드 조각으로 알아보겠습니다.

 def foo(s): print(f`foo는 매개변수 {s}`로 호출됨) return s flag = true if flag: result = foo(`if`) else: result = foo(`else`) result = foo(`삼항-if`) if 플래그 else foo(`삼항 y-else`) result = (foo(`튜플) -true`), foo (` tuple-false`)) [flag] print (`완료`) 

출력:

 foo가 매개변수로 호출된 경우 foo가 매개변수로 호출됨 ternary-if foo가 매개변수로 호출되면 tuple-true foo가 매개변수로 호출됨 tuple-false 완료