在python解释器中,
min(True,False)==False
max(True,False)==True
设计得到保证吗?
答案 0 :(得分:10)
True
等于1
而False
等于0
答案 1 :(得分:3)
似乎,至少在CPython中,bool
子类int
。因此,您可以这样做:
>>> abs(False)
0
>>> abs(True)
1
和
>>> False < True
True
>>> True > False
True
我猜max
和min
适用于比较运算符:
>>> cmp(False, True)
-1
>>> cmp(True, False)
1
>>> cmp(False, False)
0
>>> cmp(True, True)
0
答案 2 :(得分:2)
在python 2.x中,这不能保证,因为你可以覆盖True和False:
>>> False = 23
>>> max(True, False)
23
但是如果你没有指定为True或False,那么语言设计保证Booleans使用值0,1,是的子类int。 (在py3中,True和False是保留字,所以你不能这样做)
答案 3 :(得分:1)