Python中的条件运算符?
你知道Python有没有类似C++那种用来根据if
条件在同一行返回值的关键字或表达式吗?在C++中,这种if
用问号?
表示。
// C++
value = ( a > 10 ? b : c )
2 个回答
1
简单的方式是最好的,而且在每个版本中都能使用。
if a>10:
value="b"
else:
value="c"
206
value = b if a > 10 else c
对于Python 2.4及更早版本,你需要做一些类似下面的事情,虽然这样做的效果和短路运算不完全一样:
value = [c, b][a > 10]
还有一种方法是用'and ... or',但最好不要使用,因为在某些情况下它会表现得很奇怪,可能会导致难以发现的错误。我这里不打算写这个方法,因为我觉得最好不要用它,不过如果你想了解,可以去维基百科看看。