and-or用法


在控制台输入以下代码:

1
2
3
4
a = "first"
b = "second"
print a and b
print a or b #结果为:first

因此可以这样演变

1
2
print True and a or b #结果为:first
print False and a or b #结果为:second

这样来看,前边的bool型变量决定了输出结果为a还是b。但是前提是a和b都为True。因此可以把and-or封装为一个函数:

1
2
def (bool, a, b):
return (bool and [a] or [b])[0]

这样把a和b当做数组的一个元素,即便a、b为false也不会影响输出结果。类似于c中得 bool?a:b