Python布尔语句

时间:2012-10-01 19:00:33

标签: java python boolean expression

  

可能重复:
  Ternary conditional operator in Python

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

  

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

他们是否可以在Python中使用上述Java代码?上面的陈述恰当地称为什么?

3 个答案:

答案 0 :(得分:10)

是的,请使用conditional expression

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的序列等),那么{{1}无论如何都会选择

答案 1 :(得分:3)

的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中,由于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()

答案 2 :(得分:2)

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

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

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

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