Python布尔真值测试

Python布尔真值测试,python,boolean,Python,Boolean,可能重复: Python是否有一个等价的三元操作符 ( x < 5 ? 1 : 0 ) (x

可能重复:

Python是否有一个等价的
三元操作符

( x < 5 ? 1 : 0 )
(x<5?1:0)
或者我必须用
来表达相同的东西吗?如果还有
对吗?

您可以使用:

如果x<5,则
1,否则为0
在为非常旧版本的Python编写的代码中,您还可以看到:

x < 5 and 1 or 0
x<5和1或0
但是,Python 2.5及更高版本首选条件表达式形式。

Python有:

1 if x < 5 else 0
如果x<5,则
1,否则为0
还是旧式:

x < 5 and 1 or 0
x<5和1或0

请注意,如果
后面的值为false,则
/
将失败。@Greg:谢谢。我会在11分钟内接受你的回答。当然,在这种情况下,你可以使用
x<5
作为值本身,或者
bool(x<5)
如果
x
是一种特别奇怪的类型。@ignacio,情况似乎不是这样
0和0或1
对我来说返回
1
,刚刚在Python 2.3到2.7上测试过,在必须在Python中工作的代码中应该首选
if:/else:
x < 5 and 1 or 0