是否有類似的控制流操作 '?' 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
是否有類似的控制流操作 '?' 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
是,條件表達式爲available in Python 2.5+:
return n if n <= 1 else fibo(n-1) + fibo(n-2)
要注意的一點是條件是在這個python版本的中間。類似C語言有'
你可以試試這個短路表達式return n > 1 and fibo(n-1) + fibo(n-2) or n
。雖然這不是三元的陳述,但它是簡潔的,並且在這種情況下完成工作。
我不認爲這適用於'n == 0' –
@NeilG更新了我的答案。感謝您指出。 –
這被稱爲「三元」 –
它可能被錯誤地稱爲;它需要三個操作數,所以它是三元的,加法是二元的。它發生在python或其他algol下降中的許多三元運算符。這是phihag的答案中唯一標識爲「條件表達式」 – SingleNegationElimination