关于python:使用三元运算符返回语句

Return statement using ternary operator

c中,我可以做如下的事情:

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

但在Python中,我无法实现相同的目标:

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

这给了Syntax Error

我知道我可以做如下的事情:

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

我的问题是,不能在python中使用三元运算符吗?


您的C代码不包含两个return语句。您的python代码也不应该……三元表达式的转换是n if n,因此在返回值时只需使用该表达式:

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


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

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

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