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