は、同様の制御フロー演算子があります '?' 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
は、同様の制御フロー演算子があります '?' 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
:
return n if n <= 1 else fibo(n-1) + fibo(n-2)
注意すべき点は、条件がこのPythonバージョンの真中にあることです。 Cのような言語には '
return n <= 1 ? n : fibo(n-1) + fibo(n-2)
この短絡式return n > 1 and fibo(n-1) + fibo(n-2) or n
を試すことができます。これは三元声明ではありませんが、簡潔であり、このシナリオでは仕事をします。
'はn == 0の場合はうまくいきません。 –
@NeilG自分の答えを更新しました。指摘してくれてありがとう。 –
これは「3進」と呼ばれます –
これは間違って呼ばれることがあります。それは3つのオペランドを要するので、加算が2進であるのと同じ方法で3進である。 Pythonや他のアルゴールの子孫には、多くの三項演算子が存在しないことが起こります。これはphihagの答えとして "条件式"と一意に識別されます。 – SingleNegationElimination