【问题标题】:Return statement using ternary operator使用三元运算符的返回语句
【发布时间】:2012-08-28 11:14:44
【问题描述】:

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

【问题讨论】:

  • 没有什么叫做两个返回语句! return (n&lt;m)? n:m 基于比较 n&lt;m 仅返回一个值,n 或 m
  • @Curious 我有一个奇怪的困惑,现在它清楚了。
  • 在python中你可以写和return n if n&lt;m else m一样的东西

标签: python ternary-operator


【解决方案1】:
def minn(n,m):
    return n if n<m else m

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 嗯。如果您考虑一下,这有点明显,但考虑到我拥有计算机科学学位和 4 年的 Java/软件工程经验,我仍然在这个问题上摸不着头脑。感谢发帖。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-05
    • 2021-02-13
    • 1970-01-01
    • 2018-05-30
    • 1970-01-01
    • 2017-03-28
    • 2018-07-24
    相关资源
    最近更新 更多