Python-equivalent of short-form "if" in C++
Question:
Is there a way to write this C/C++ code in Python?
a = (b == true ? "123" : "456" )
Answers:
a = '123' if b else '456'
See PEP 308 for more info.
My cryptic version…
a = ['123', '456'][b == True]
While a = 'foo' if True else 'bar'
is the more modern way of doing the ternary if statement (python 2.5+), a 1-to-1 equivalent of your version might be:
a = (b == True and "123" or "456" )
… which in python should be shortened to:
a = b is True and "123" or "456"
… or if you simply want to test the truthfulness of b’s value in general…
a = b and "123" or "456"
? :
can literally be swapped out for and or
Is there a way to write this C/C++ code in Python?
a = (b == true ? "123" : "456" )
a = '123' if b else '456'
See PEP 308 for more info.
My cryptic version…
a = ['123', '456'][b == True]
While a = 'foo' if True else 'bar'
is the more modern way of doing the ternary if statement (python 2.5+), a 1-to-1 equivalent of your version might be:
a = (b == True and "123" or "456" )
… which in python should be shortened to:
a = b is True and "123" or "456"
… or if you simply want to test the truthfulness of b’s value in general…
a = b and "123" or "456"
? :
can literally be swapped out for and or