python中红色表示方法,python3 三元表达式

  python中红色表示方法,python3 三元表达式

  我知道Python没有三元形式,但是我通过技巧达到了三元形式的效果。

  摘自《Dive Into Python》:

  在Python上,“AND”和“OR”执行预期的心跳星逻辑运算,但不返回心跳星值;相反,它返回一个要实际比较的值。

  介绍

  1 a 和 b #1

  2 b3 和2 b #

  4 5 a 和 b 和 c #3

  6摄氏度

  当使用and时,公式的值是在心跳很快的星的上下文中从左到右计算的。0,,[],(),),),在一个心跳很快的星球的背景下,无一为假;其他都是真的。没关系。几乎一切。默认情况下,心跳快的星型上下文中的类实例为真,但可以在类中定义特定的方法,使类实例的运算值为假。如果心跳快的星号上下文中的所有值都为真,将返回最后一个值。在本例中,and运算“A”的值为真,然后“B”的值为真,最后返回“B”。

  2如果心跳快的星的上下文中的任何值为假,将返回第一个假值。在本例中,“”是第一个假值。

  3,因为所有值都为真,并返回最后一个真值,“C”。

  或者介绍

  1 a 或 b #1

  2 a3 或 b #2

  4 b5 或[]或[] #3

  6 []

  7 def侧FX (:8。打印内部外汇) 9。返回1

  10.11a 或sideFX(#4

  12英尺高

  使用1or时,如果在心跳快的星星的上下文中从左到右操作值,则类似于and。如果值为true,或立即返回值。在本例中,“a”是第一个真值。

  2 OR运算“”的值为false,然后运算“b”的值为true,返回“b”。

  3如果所有值都为假,则返回最后一个假值。or 的值为假,那么运算[]的值为假,连续运算{}的值为假,最后返回{}。

  4.注意,在或心跳很快的星球的上下文中,继续执行表达式运算,直到找到第一个真值,忽略其余的比较值。如果某些值有副作用,这个特性非常重要。其中,永远不会调用函数sidefx。因为or运算“a”的值为真,所以它立即返回“a”。

  使用and-or技术

  1a=第一个 2b=第二个 31和球体# 1

  4 first5 0和a或b #2

  6 秒

  这种语法像C语言中的bool吗?A: b型。因为整个公式是从左到右运算的,所以先运算and公式。1和 first 的运算值为 first ,然后 first 或 second 的运算值为 first 。

  20和第一运算值为假,然后0或第二运算值为第二。

  但是,这是and-or技术,是C语言的bool,因为这样的Python表达式只是心跳加速的星星的逻辑运算,而不是语言的具体结构?A: b语法是很重要的区别。如果a为false,表达式将不会按预期工作。

  如果and-or技术无效

  1 a=2 b=第二个 3 1和a或b #1

  4 秒

  1a是空字符串,所以在Python heartbeat的star上下文中,空字符串被认为是false。1和“”的运算值为“”,最后一个“或”秒”的运算值为“秒”。哦!这个值不是你想要的。

  如果在and-or技能,bool和a或b表达式,心跳快的星星的上下文中,a的值为false,会不会像C语言表达式bool一样?像a: b一样工作。

  AND-OR技巧之后真正的技巧是防止A的值为假。最常见的方法是将A设置为[a],B设置为[b],然后使用返回值列表中的第一个元素。应该是a或者b。

  安全使用and或技能。

  1a= 2b= second 3(1和[a]或[b] ) [0] #1

  4

  【a】是非空列表,所以绝不是假的。即使a是0," "或其他假值,它也是真的,因为列表[a]包含元素。

  到目前为止,这种技术可能看起来问题超出了它的价值。毕竟,既然你可以用一个if语句做同样的事情,为什么要这么麻烦呢?嗯,很多时候你必须在两个常量值之间做出选择。我们知道A的值总是真的,所以我们不用担心使用这么简单的语法。仍然有很好的理由使用更复杂的安全形式。例如,在Python中,诸如lambda函数之类的if语句可能不可用。

  但是,三元语法。X if C else Y集成在Python2.5中。

  1defsmaller(x,y ) :2。returnxifxyelsey3.4smaller,20 )5 10

  这样不是更简洁易懂吗?

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: