Python中的条件运算符?

121 投票
2 回答
165036 浏览
提问于 2025-04-15 18:50

你知道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',但最好不要使用,因为在某些情况下它会表现得很奇怪,可能会导致难以发现的错误。我这里不打算写这个方法,因为我觉得最好不要用它,不过如果你想了解,可以去维基百科看看。

撰写回答