我们知道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运行的过程,那么就可以实现上面的?表达式了。