# Ternary Operator

It is a shortcut for if-else and, simply allows to testing a condition in a single line replacing the multiline if-else making the code compact and more understandable.

Ternary operators are operators that evaluate something based on a condition being true or false and also known as conditional expressions.

### Syntax

 ```[on_true_value] if [expression] else [on_false_value] ```

### Code Snippet

 ```a = 100 b = 200 larger_number = a if (a > b) else b print(larger_number) #Output:200 print(a if (a > b) else b) #Output:200 ```

There are different ways to implement ternary operator

#### Using tuples

 ```(on_false_value,on_true_value) [expression] ```

 ```a = 100 b = 200 print((b,a) [a > b]) #Output:200 print((b,a) [a < b]) #Output:100 print((a,b) [a > b]) #Output:100 print((a,b) [a < b]) #Output:200 ```

#### Using dictionaries

 ```{False:on_false_value, True: on_true_value } [expression] ```

 ```a = 100 b = 200 print({False: b, True: a}[a > b]) #Output:200 print({False: b, True: a}[a < b]) #Output:100 print({True: a, False: b}[a > b]) #Output:200 print({True: a, False: b}[a < b]) #Output:100 ```

#### Using Lambdas

 ```(lambda: on_false_value, lambda: on_true_value)[expression]() ```

 ```a, b = 100, 200 print((lambda: a, lambda: b)[a>b]()) #Output:100 ```

Ternary operator can also be written as nested if-else

#### Usual nested if-else

 ```a, b = 100, 200 if a != b: if a > b: print("a is greater than b") else: print("b is greater than a") #Output:b is greater than a else: print("Both a and b are equal") ```

#### nested if-else with ternary operator

 ```a, b = 100, 200 print ("Both a and b are equal" if a == b else "a is greater than b" if a > b else "b is greater than a") #Output: b is greater than a ```

If you have any doubts or queries related to this chapter, get them clarified from our Python Team experts on ibmmainframer Community!