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之前,人们使用and
和or
表达式的组合来实现类似的结果:
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中,由于方式and
和or
运营商的工作,还可以在某些情况下的东西你平时使用的三元运算符在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