Java Python布尔语句
可能重复:Java Python布尔语句,java,python,boolean,expression,Java,Python,Boolean,Expression,可能重复: 我用Java编程已经有相当一段时间了,我在学校里学习Python,我记得用Java可以实现一个布尔表达式 布尔值?(如果布尔值为true,则发生此情况):(如果布尔值为false,则发生此情况) 它们是用Python编写上述Java代码的一种方法吗?上面的语句正确地称为什么?是的,使用: 示例: >>> 'foo' if True else 'bar' 'foo' >>> 'foo' if False else 'bar' 'bar' 在引入P
我用Java编程已经有相当一段时间了,我在学校里学习Python,我记得用Java可以实现一个布尔表达式 布尔值?(如果布尔值为true,则发生此情况):(如果布尔值为false,则发生此情况) 它们是用Python编写上述Java代码的一种方法吗?上面的语句正确地称为什么?是的,使用: 示例:
>>> 'foo' if True else 'bar'
'foo'
>>> 'foo' if False else 'bar'
'bar'
在引入Python 2.5之前,人们使用和
以及或
表达式的组合来实现类似的结果:
expression and truevalue or falsevalue
但是,如果表达式本身的truevalue
部分计算为布尔值False
(因此为0或无或任何长度为0的序列,等等),则无论如何都会选择False值
。是的,您可以使用此选项(更像pythonic):
或者,这(更常见,但不推荐):
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中,由于和
以及或
运算符的工作方式,在某些情况下,您还可以将它们用于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()
相关:。在Begging Python中没有包含此内容,因为人们认为这样的表达式会妨碍可读性。作为为数不多的几种广泛使用的不直接继承C语法的语言之一(就像Java一样),当他们最终将其添加到Python中时,这种想法比“C”方式更自然易读。(方法是在Martiin的回答中)如果后者更常见,那只是因为前者是在几个版本之前引入的,并且在此之前编写了很多现有代码。现在根本不应该使用它。如果
和表达式的右侧表达式的计算结果为falshy(空字符串、空序列、无
等),则后者会有巨大的问题
x if condition else y
val = val() if callable(val) else val
greeting = ("Hi " + name) if name != "" else "Howdy pardner"
# 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()