Python布尔语句

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

我已经用Java编写了相当长的一段时间,我在学校学习Python,并且我记得在Java中可以做一个布尔表达式

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

他们是一种在Python中完成上述Java代码的方法吗? 上面正确的称呼是什么?


是的,你可以使用这个(更pythonic):

>>> "foo"'if condition else "bar"

或者,这个(更常见但不推荐):

>>> condition and "foo" or "bar"

是的,使用条件表达式:

somevalue if oneexpression else othervalue

例子:

>>> 'foo' if True else 'bar'
'foo'
>>> 'foo' if False else 'bar'
'bar'

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

expression and truevalue or falsevalue

但是如果表达式本身的truevalue部分评估为具有布尔值False东西(因此0或None或长度为0的任何序列等),则falsevalue将会选取falsevalue


蟒蛇:

x if condition else y

例:

val = val() if callable(val) else val
greeting = ("Hi " + name) if name != "" else "Howdy pardner"

这通常被称为“三元操作符”,因为它有三个操作数。 但是,术语“三元操作符”适用于具有三个操作数的任何操作。 恰巧大多数编程语言没有任何其他三元操作符,所以说“该”是明确的。 但是,我会将它称为if/else运算符或条件表达式。

在Python中,由于方式andor运营商的工作,还可以在某些情况下的东西你平时使用的三元运算符在C衍生语言使用它们:

# provide a default value if user doesn't enter one
name = raw_input("What is your name? ") or "Jude"
print "Hey", name, "don't make it bad."

# call x only if x is callable
callable(x) and x()
链接地址: http://www.djcxy.com/p/7407.html

上一篇: Python Boolean Statement

下一篇: Python boolean truth tests