Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Python布尔语句_Java_Python_Boolean_Expression - Fatal编程技术网

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()