why do some short form of conditionals work in python and some don't? -
why do some short form of conditionals work in python and some don't? -
take example:
= "foo" if true else "bar" this executes fine , without problems. take:
print("foo") if true else print("bar") this throws error.
i assume first 1 works ternary operator. there way write sec statement without resorting total length:
if true: print("foo") else: print("bar") something akin perl's
print("foo") if true
all paths of conditional expression, must evaluatable.
in python 2.7, print statement, not function. so, cannot evaluated expression.
since print statement violates point 2, cannot used. can do
print "foo" if true else "bar" in python 3.x, print function, can write mentioned in question
print("foo") if true else print("bar") since print function in python 3.x, result of function phone call result of evaluation of function phone call expression. can check this
print(print("foo") if true else print("bar")) # foo # none print function doesn't explicitly homecoming anything. so, default, returns none. result of evaluating print("foo") none.
python python-2.7 conditional-statements
Comments
Post a Comment