@Ayush Yes, Ternary operator is available in Python from version 2.5. It’s a conditional operator which performs an operation based on a condition being true or false in a single line test instead of multiline if-else complexity. It has the lowest priority of all other python operators.
How did this work before the Python 2.5 version?
[expression] and [for_true] or [for_false]
As you asked when a ternary operator was not present in python before its 2.5 version then that will be checked by the interpreter, if the expression will be true then [for_true] evaluated otherwise [for_false] will be evaluated.
For an example -
x, y = 1,2
minimum = x < y and x or y
print(minimum)
Output: 1
If x is less than y then x will be assigned otherwise y will be assigned. Its main drawback is, this system became failed when x = 0 or false and then it will evaluate [for_false] always. This happens because in any case expression will get true and it will move for [for_true] and if it checks its value is 0 or false then it will also move towards [for_false] to print out the final result.
How this is working after python 2.5 version?.
Expression syntax-
[for_true] if [expression] else [for_false]
Methods to use-
1. Simple method
x, y = 1,2
minimum = x if x < y else y
print(minimum)
Output: 1
2. Direct method ( using tuples,dictionary,lambda)
x, y = 1, 2
print( (y, x) [x < y] )
print({True: x, False: y} [x < y])
print((lambda: y, lambda: x)[y < x]())
Output:
1
1
1
Hope you understand.