2011-10-15 15 views
5

可能性の重複:
Python Ternary Operatorありますか? Pythonの制御フロー?

は、同様の制御フロー演算子があります '?' PythonでC/C++の?

このようなコードの塊がある場合:はい、条件式がavailable in Python 2.5+ある

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

これは「3進」と呼​​ばれます –

+5

これは間違って呼ばれることがあります。それは3つのオペランドを要するので、加算が2進であるのと同じ方法で3進である。 Pythonや他のアルゴールの子孫には、多くの三項演算子が存在しないことが起こります。これはphihagの答えとして "条件式"と一意に識別されます。 – SingleNegationElimination

答えて

12

return n if n <= 1 else fibo(n-1) + fibo(n-2) 
+6

注意すべき点は、条件がこのPythonバージョンの真中にあることです。 Cのような言語には ' 'だが、Pythonは以外の場合はなら' – SingleNegationElimination

4
ウィルは、このようなエラーを得た

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

この短絡式return n > 1 and fibo(n-1) + fibo(n-2) or nを試すことができます。これは三元声明ではありませんが、簡潔であり、このシナリオでは仕事をします。

+0

'はn == 0の場合はうまくいきません。 –

+0

@NeilG自分の答えを更新しました。指摘してくれてありがとう。 –

関連する問題