python中的问号表达式

发布时间:2019-09-18 07:24:14编辑:auto阅读(2532)

        我们知道C语句中存在问号表达式,例如下面:

     

    a=2>1? 10: -10;

     

        那么,Python脚本语言中是否也存在类似的问号表达式呢?答案是肯定的。而且存在两种方式。

     

        方式1使用if else实现

    如下例:

     

    b = 5

    a = 2 if b == 4 else 1

    print a

     

        方式2:使用逻辑运算符实现

    如下例:

     

    b = 5

    a = b == 4 and 2 or 1

       要注意:使用逻辑运算时要保证and后面的变量值不能为非,否则会出错。

      

        提示

        python中的and和or和其它语言的区别很大。其它语言中的and和or都是返回bool类型的结果,python不是。它返回的是做and和or运算的其中一个值。那个值决定了这个表达式的值,就返回那个值。请看下面的例子:

     

     

      >> 5 and ''

      这里结果是'', 空字符串, 因为是它导致了这个表达式为false.
      也就是所在and中,只有前面一个值是false的时候,才有可能成为结果。否则就是后面的值为结果。

      了解了and和or运行的过程,那么就可以实现上面的?表达式了。

     

     

关键字