最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

python三元运算符实现方法

来源:动视网 责编:小采 时间:2020-11-27 14:29:54
文档

python三元运算符实现方法

python三元运算符实现方法:这是今天在温习lambda表达式的时候想到的问题,众所周知C系列语言中的 三元运算符(:)是一个非常好用的语句, 关于C中的三元运算符 表达式1?表达式2:表达式3 那么在python应该如何实现呢,请看下面例子: 答案是:X = (表达式1)and 表达式2(真值
推荐度:
导读python三元运算符实现方法:这是今天在温习lambda表达式的时候想到的问题,众所周知C系列语言中的 三元运算符(:)是一个非常好用的语句, 关于C中的三元运算符 表达式1?表达式2:表达式3 那么在python应该如何实现呢,请看下面例子: 答案是:X = (表达式1)and 表达式2(真值


这是今天在温习lambda表达式的时候想到的问题,众所周知C系列语言中的 三元运算符(?:)是一个非常好用的语句,

关于C中的三元运算符

表达式1?表达式2:表达式3

那么在python应该如何实现呢,请看下面例子:

答案是:X = (表达式1)and 表达式2(真值返回)or 表达式3(假值返回)

举个例子:

代码如下:


def main():
y = 5
x = (y > 5) and 2 or 4
print x
pass

这段代码的是意思的输出是4,可以把表达式的条件改为(y<=5)这时候输出就是2

为什么能得到这样的结果:

0、''、[]、()、{}、None在布尔上下文中为假;其它任何东西都为真。
在Python中,and和or执行布尔逻辑演算,但是它们并不返回布尔值;而是,返回它们实际进行比较的值之一。
如果布尔上下文中的所有值都为真,那么and返回最后一个值。上下文中的某个值为假,则and返回第一个假值。
如果有一个值为真,or立刻返回该值。如果所有的值都为假,or返回最后一个假值
基于上述的背景,你应该还能理解这个表达式的含义了吧。

“注:“里面应该是这个用法的一些缺陷,如果表达式2或3是几个定义的假值(0、''、[]、()、{}、None)之一,就会影响判断了,我的建议是吧这些假值都用字符串的形式表现,并且将“”特殊处理为“”。后续再做判断

再次见识到Python的强大,如果您有什么见解欢迎评论。

后记:

最近看了一些文章,有位大神对这个问题对这个缺陷给了一个完美的解决方案

X=(表达式1)and[表达式2(真值返)]or[表达式3(假值返回)](注:表达式2以及表达3不能为0、''、[]、()、{}、None)

对表达式2,3用中括号括起来,这样两者的值将永远不会为假,这个解决方案的确不错。

文档

python三元运算符实现方法

python三元运算符实现方法:这是今天在温习lambda表达式的时候想到的问题,众所周知C系列语言中的 三元运算符(:)是一个非常好用的语句, 关于C中的三元运算符 表达式1?表达式2:表达式3 那么在python应该如何实现呢,请看下面例子: 答案是:X = (表达式1)and 表达式2(真值
推荐度:
标签: 方法 实现 进行
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top