web-dev-qa-db-ja.com

三項演算子を使用してステートメントを返す

cでは、次のようなことができます。

int minn(int n, int m){
 return (n<m)? n:m
}

しかしpythonでは、同じことを達成することはできません:

def minn(n,m):
    return n if n<m else return m

これは与える Syntax Error

私は次のようなことができることを知っています:

def minn(n,m):
    return min(n,m)

私の質問は、Pythonで三項演算子を使用できないことです。

25

Cコードに2つのreturnステートメントが含まれていない。 pythonコード...もしないでください。3項式の変換はn if n<m else mなので、値を返すときにその式を使用します。

def minn(n,m):
    return n if n<m else m
47
Karoly Horvath
def minn(n,m):
    return n if n<m else m

expr1 if expr2 else expr3式は式であり、ステートメントではありません。 returnはステートメントです( this 質問を参照)

式にはステートメントを含めることができないため、コードは失敗します。

12
lolopop