问题
Possible Duplicate:
Python Ternary Operator
Is there control flow operator similar to '?' of C/C++ in python?
If there is a chunk of code similar to this:
return n <= 1 ? n : fibo(n-1) + fibo(n-2)
Will got an error like this:
File "fibonacci.py", line 2
return n <= 1 ? n : fibo(n-1) + fibo(n-2)
^
SyntaxError: invalid syntax
回答1:
Yes, the conditional expression is available in Python 2.5+:
return n if n <= 1 else fibo(n-1) + fibo(n-2)
回答2:
You can try this short circuit expression return n > 1 and fibo(n-1) + fibo(n-2) or n
. While this is not the ternary statement, it is concise and does the job in this scenario.
来源:https://stackoverflow.com/questions/7778400/is-there-control-flow-in-python