Python布尔语句

Jon*_*oin 0 python java expression boolean

可能重复:
Python中的三元条件运算符

我已经用Java编程了很长一段时间,我在学校学习Python,我记得在Java中你可以做一个布尔表达式

布尔值?(如果布尔值为true,则会发生这种情况):(如果布尔值为false,则会发生这种情况)

他们是用Python编写上述Java代码的方法吗?上面的陈述恰当地称为什么?

Mar*_*ers 10

是的,使用条件表达式:

somevalue if oneexpression else othervalue
Run Code Online (Sandbox Code Playgroud)

例子:

>>> 'foo' if True else 'bar'
'foo'
>>> 'foo' if False else 'bar'
'bar'
Run Code Online (Sandbox Code Playgroud)

在Python 2.5之前,人们使用了andor表达式的组合来实现类似的结果:

expression and truevalue or falsevalue
Run Code Online (Sandbox Code Playgroud)

但是如果truevalue表达式本身的一部分被评估为具有布尔值的东西False(所以0或None或任何序列长度为0等),那么无论如何falsevalue都会被选中.