2011-10-15 70 views
5

可能重複:
Python Ternary Operator有沒有'?' Python中的控制流?

是否有類似的控制流操作 '?' C/C++在python中的使用?

如果代碼類似於此一大塊:

return n <= 1 ? n : fibo(n-1) + fibo(n-2) 

意志得到了這樣的錯誤:

File "fibonacci.py", line 2 
    return n <= 1 ? n : fibo(n-1) + fibo(n-2) 
       ^
SyntaxError: invalid syntax 
+2

這被稱爲「三元」 –

+5

它可能被錯誤地稱爲;它需要三個操作數,所以它是三元的,加法是二元的。它發生在python或其他algol下降中的許多三元運算符。這是phihag的答案中唯一標識爲「條件表達式」 – SingleNegationElimination

回答

4

你可以試試這個短路表達式return n > 1 and fibo(n-1) + fibo(n-2) or n。雖然這不是三元的陳述,但它是簡潔的,並且在這種情況下完成工作。

+0

我不認爲這適用於'n == 0' –

+0

@NeilG更新了我的答案。感謝您指出。 –