Pythonの3元操作

659 ワード

私はプログラムを書くのが好きですが、pythonではサポートされていないので、少し憂鬱で、資料を調べてみると、解決策があることに気づきました.
たとえば、次のような関数があります.
function trans(v) {
		return (v==0)?1:v;
	}

ああ、三元演算子はきれいに見えますが、pythonがなぜサポートしていないのか分かりません.
pythonのソリューション1を見てみましょう.
def trans(v):
		return 1 if v==0 else v
 
つまりif else文の略語形式で、意味は一見わかりますが、見た目は悪くありません.   
   
次はソリューション2です.
def trans(v):
		return v==0 and 1 or v

ANDまたは演算子のプロパティが使用されます.
vが0に等しいとtrueであれば、1と演算し、trueであれば、後の演算や演算を行わず、直接1を返す.vが0に等しいfalseの場合、1と演算を行い、falseの場合、続行または演算を行い、vを返します.