2017-06-22 8 views
0

以下の式のpythonに相当するものは何ですか?以下の式のpythonに相当するものは何ですか?

EE_DOUBLE const yplus = (y < 1.0) ? y*u_tau/nu_inf : (2.0-y)*u_tau/nu_inf 

どのようなご提案も歓迎します。多くのおかげで私はもうCの構文についてあまりにもわからないんだけど、私は、それは次のようになりますね

+1

以降に追加されましたか?三元演算子が何であるか知っていますか? –

+1

https://stackoverflow.com/questions/394809/does-python-have-a-ternary-conditional-operator – taras

+0

私はユージンを知らないことを恐れています。 – Andrei

答えて

0

yplus = y*u_tau/nu_inf if (y < 1.0) else (2.0-y)*u_tau/nu_inf 
0
yplus = ((2.0-y)*u_tau/nu_inf, y*u_tau/nu_inf)[y < 1.0] 

他の方法

yplus = (y < 1.0) and (y*u_tau/nu_inf) or ((2.0-y)*u_tau/nu_inf) 

他の方法

yplus = {True: y*u_tau/nu_inf, False: (2.0-y)*u_tau/nu_inf} [y < 1.0] 

その他の方法は既にoでマークされていますPythonの三項演算子を使用してその他

yplus = (y*u_tau)/nu_inf if y < 1.0 else (2.0-y)*u_tau/nu_inf 

他の方法

if (y < 1.0): 
    yplus = (y*u_tau)/nu_inf 
else: 
    yplus = (2.0-y)*u_tau/nu_inf 
+0

これは間違っています。 – Olaf

+0

私は式を交換する必要がありますね。しかし良いアイデア。それは慣用ですか? @EugeneSh。 –

+0

この考え方は、各演算子が異なる方法で値を扱うことができるlispシステムから来ています。たとえば、ここではブール値であると思われるものは[] - ref演算子で整数として扱われます。 – alinsoar

0

は混乱で何2.5

yplus = (y*u_tau)/nu_inf if y < 1.0 else (2.0-y)*u_tau/nu_inf 
関連する問題