首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Python布尔语句

Python布尔语句
EN

Stack Overflow用户
提问于 2012-10-01 11:00:32
回答 3查看 342关注 0票数 0

可能重复: Python中的三值条件运算符

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

布尔?(如果布尔值为true,则会发生):(如果布尔值为false,则会发生)

它们是在Python中执行上述Java代码的一种方法吗?那么上面的陈述是怎样的呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-10-01 11:04:11

是的,你可以用这个(更多的琵琶):

代码语言:javascript
运行
AI代码解释
复制
>>> "foo"'if condition else "bar"

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

代码语言:javascript
运行
AI代码解释
复制
>>> condition and "foo" or "bar"
票数 2
EN

Stack Overflow用户

发布于 2012-10-01 11:01:39

是的,使用条件表达式

代码语言:javascript
运行
AI代码解释
复制
somevalue if oneexpression else othervalue

示例:

代码语言:javascript
运行
AI代码解释
复制
>>> 'foo' if True else 'bar'
'foo'
>>> 'foo' if False else 'bar'
'bar'

在引入Python2.5之前,人们使用andor表达式的组合来实现类似的结果:

代码语言:javascript
运行
AI代码解释
复制
expression and truevalue or falsevalue

但是,如果表达式的truevalue部分本身计算为具有布尔值False (所以是0或0或任何长度为0的序列,等等)的东西。无论如何,falsevalue都会被选中。

票数 10
EN

Stack Overflow用户

发布于 2012-10-01 11:04:17

Python:

代码语言:javascript
运行
AI代码解释
复制
x if condition else y

示例:

代码语言:javascript
运行
AI代码解释
复制
val = val() if callable(val) else val
greeting = ("Hi " + name) if name != "" else "Howdy pardner"

这通常被称为“三元运算符”,因为它有三个操作数。然而,术语“三值运算符”适用于任何具有三个操作数的运算。只是大多数编程语言没有任何其他三元操作符,所以说"the“是明确的。但是,我将其称为if/else运算符或条件表达式。

在Python中,由于andor运算符的工作方式,您也可以在某些情况下将它们用于通常在C派生语言中使用三元运算符的东西:

代码语言:javascript
运行
AI代码解释
复制
# 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()
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12679331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文