2017-06-22 68 views
0

以下表達式的python等價物是什麼?以下表達式的python中的等效內容是什麼?

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

歡迎任何建議。許多感謝

+1

什麼是混亂添加?你知道三元運算符是什麼嗎? –

+1

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

+0

恐怕我不知道尤金。 – Andrei

回答

0

我不太確定C語法了,但我想它會是這樣的:

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 thers

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

我猜表達式應該交換。但好主意。這是慣用的嗎? –

+0

@EugeneSh。這個想法來自於lisp系統,其中每個運算符都可以用不同的方式處理一個值,例如在這裏,被認爲是布爾值的東西被[] -ref運算符視爲整數。 – alinsoar

0

使用Python的三元運算符,因爲2.5

yplus = (y*u_tau)/nu_inf if y < 1.0 else (2.0-y)*u_tau/nu_inf 
相關問題