34

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

4

2 回答 2

66

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

def minn(n,m):
    return n if n<m else m
于 2012-09-03T18:27:26.170 回答
14
def minn(n,m):
    return n if n<m else m

expr1 if expr2 else expr3表达式是表达式,而不是语句。return是一个陈述(见这个问题)

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

于 2012-09-03T18:30:08.113 回答