使用三元运算符的返回语句
Posted
技术标签:
【中文标题】使用三元运算符的返回语句【英文标题】: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<m)? n:m
基于比较 n<m
仅返回一个值,n 或 m
@Curious 我有一个奇怪的困惑,现在它清楚了。
在python中你可以写和return n if n<m else m
一样的东西
【参考方案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<m else m
,所以当你返回值时使用那个表达式:
def minn(n,m):
return n if n<m else m
【讨论】:
嗯。如果您考虑一下,这有点明显,但考虑到我拥有计算机科学学位和 4 年的 Java/软件工程经验,我仍然在这个问题上摸不着头脑。感谢发帖。以上是关于使用三元运算符的返回语句的主要内容,如果未能解决你的问题,请参考以下文章