使用三元运算符返回语句

时间:2012-09-03 18:26:21

标签: python ternary-operator

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中使用三元运算符。

2 个答案:

答案 0 :(得分:44)

您的C代码不包含两个return语句。你的python代码也不应该...你的三元表达式的翻译是n if n<m else m,所以只要在返回值时使用该表达式:

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

答案 1 :(得分:11)

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

expr1 if expr2 else expr3表达式是表达式,而不是语句。 return是一个声明(请参阅this问题)

因为表达式不能包含语句,所以代码会失败。