Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python의 삼항 연산자?

<시간/>

많은 프로그래밍 언어는 기본적으로 조건식을 정의하는 삼항 연산자를 지원합니다.

마찬가지로 파이썬의 삼항 연산자는 이진 조건의 결과를 기반으로 값을 반환하는 데 사용됩니다. 이진 값(조건)을 입력으로 사용하므로 "if-else" 조건 블록과 유사합니다. 그러나 함수와 유사하게 동작하는 값도 반환합니다.

구문

[on_true] if [expression] else [on_false]

두 정수를 비교하는 간단한 프로그램을 하나 작성해 보겠습니다. -

ㅏ. 파이썬 if-else 문 사용 -

>>> x, y = 5, 6
>>> if x>y:
   print("x")
else:
   print("y")
y

비. 삼항 연산자 사용

>>> x, y = 5, 6
>>> print("x" if x> y else "y")
y

삼항 연산자를 사용하면 한 줄에 코드를 작성할 수 있습니다. 따라서 python은 기본적으로 조건을 먼저 평가하고 true이면 첫 번째 표현식을 평가하고 그렇지 않으면 두 번째 조건을 평가합니다.

>>> def find_max(a,b):
return a if (a>b) else b
>>> find_max(5, 6)
6

삼항 연산자를 구현하는 방법

다음은 삼항 연산자를 구현하는 다양한 방법입니다.

ㅏ. 파이썬 튜플 사용

>>> a, b = random(), random()
>>> (b, a) [a>b]
0.5497848117028667

위는 -

와 동일합니다.
>>> (b, a) [True]
0.5065247098746795

그러나 반환 값과 혼동되면 'b'또는 'b'가 반환됩니다. 위의 코드를 다시 작성해 봅시다.

>>> (f"b:{b}", f"a:{a}") [a>b]
'b:0.5497848117028667'

비. Python 사전 사용

>>> a, b = random(), random()
>>> {False: f"b:{b}", True: f"a:{a}"}[a>b]
'a:0.8089581560973976'

키-값 쌍을 교환할 수 있습니다. -

>>> {True: f"a:{a}", False: f"b:{b}"}[a>b]
'a:0.8089581560973976'

씨. 람다 사용

파이썬 람다 함수를 사용하여 삼항 연산자로 작동할 수 있습니다. -

>>> (lambda: f"a:{a}", lambda: f"b:{b}")[a>b]()
'b:0.6780078581465793'

중첩 파이썬 삼항 연산자

이 연산자를 연결해 보겠습니다. -

>>> from random import random
>>> x = random()
>>> "Less than zero" if x<0 else "between 0 and 5" if a>=0 and a<=5 else "Greather than five"

출력

'between 0 and 5'

x의 실제 값을 확인해보자 -

>>> x
0.08009251123993566