Python中x = (10<n) ? 10 : n;的等效写法是什么?

4 投票
6 回答
666 浏览
提问于 2025-04-16 10:53

我在想,Python里有什么和这个相等的写法呢:

n = 100
x = (10 < n) ? 10 : n;
print x;

不知道为什么这个在Python里不管用。我知道可以用if语句,但我只是好奇有没有更简短的写法。

谢谢。

6 个回答

4

有几种方法可以实现三元操作,第一种是使用2.5版本新增的表达式:

n = foo if condition else bar

如果你想兼容低于2.5版本的情况,可以利用布尔值是int的子类这一点。也就是说,True就像是1,而False就像是0

n = [bar, foo][condition]

另一种方法是利用Python中运算符的行为,特别是andor的表现方式:

n = condition and foo or bar
7

这里介绍的是Python中的三元运算符(在文档中也叫条件表达式)。

x if cond else y
17
x = min(n, 10)
x = 10 if 10<n else n

或者,更一般来说:

撰写回答