可能重复: Python中的三值条件运算符
我已经用Java编程了一段时间,我在学校学习Python,我记得用Java来表达你可以做的布尔表达式
布尔?(如果布尔值为true,则会发生):(如果布尔值为false,则会发生)
它们是在Python中执行上述Java代码的一种方法吗?那么上面的陈述是怎样的呢?
发布于 2012-10-01 11:04:11
是的,你可以用这个(更多的琵琶):
>>> "foo"'if condition else "bar"
或者,这(更常见,但不推荐):
>>> condition and "foo" or "bar"
发布于 2012-10-01 11:01:39
是的,使用条件表达式
somevalue if oneexpression else othervalue
示例:
>>> 'foo' if True else 'bar'
'foo'
>>> 'foo' if False else 'bar'
'bar'
在引入Python2.5之前,人们使用and
和or
表达式的组合来实现类似的结果:
expression and truevalue or falsevalue
但是,如果表达式的truevalue
部分本身计算为具有布尔值False
(所以是0或0或任何长度为0的序列,等等)的东西。无论如何,falsevalue
都会被选中。
发布于 2012-10-01 11:04:17
Python:
x if condition else y
示例:
val = val() if callable(val) else val
greeting = ("Hi " + name) if name != "" else "Howdy pardner"
这通常被称为“三元运算符”,因为它有三个操作数。然而,术语“三值运算符”适用于任何具有三个操作数的运算。只是大多数编程语言没有任何其他三元操作符,所以说"the“是明确的。但是,我将其称为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()
https://stackoverflow.com/questions/12679331
复制相似问题