在Python解释器中,
min(True,False)==False
max(True,False)==True
设计保证吗?
在Python解释器中,
min(True,False)==False
max(True,False)==True
True
等于1
,False
等于0
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
>>> False = 23
>>> max(True, False)
23
但是,如果你没有将值指定为True或False,那么根据语言设计,布尔值会作为int的子类,并且具有值0、1和yes(在Python 3中,True和False是保留字,因此无法进行上述操作)。
False
表示的对象仍然等于0
:在false = False; False = 23
之后,false == 0
(或者bool(0) == 0
)仍然成立。 - Fred Foomax
和min
函数适用于任何可排序的类型,所以我不确定它们是否符合要求。 - Fred Foo-1 < False < True < 2
。 - glglgl
min(a,b) == (a and b)
和max(a,b) == (a or b)
对于布尔值a
、b
的翻译。 - Fred Fooall()
和any()
更适合这种情况。 - glglgland
和or
。当处理它们的序列时,可以使用all
和any
。 - Fred Foo