在Python中,内置函数all和anyreturnTrue和False分别用于空的可迭代对象。我意识到,如果相反,仍然可以提出这个问题。但我想知道为什么选择了 这种特定 行为。是任意的,即。换一种方式是否一样容易,还是有潜在的原因?
all
any
True
False
(我问的原因仅仅是因为我不记得哪个是哪个,如果我知道背后的原因,那么我可能会发现。还有好奇心。)
怎么样的类比…
您有一个袜子抽屉,但当前为空。它是否包含任何黑色袜子?不-您根本没有袜子,所以您当然没有黑色的袜子。显然any([])必须返回false- 如果返回true,这将违反直觉。
any([])
的情况all([])稍微困难一些。参见维基百科有关空虚真理的文章。另一个比喻:如果房间里没有人,那么房间里的每个人都会说法语。
all([])
数学all([])上可以写成:
其中集合A为空。
关于是否应该将虚假陈述视为真实存在很多争论,但是从逻辑角度来看,这是最有意义的:
所有虚无的真实陈述都是真实的主要论点如下:如关于逻辑条件的文章所述,命题逻辑的公理要求如果P为假,则P => Q为真。也就是说,如果我们接受这些公理,就必须接受虚无的真实陈述的确是真实的。
同样来自文章:
似乎没有直接的理由选择正确的方法。只是如果我们不这样做,事情就会在我们的脸上炸毁。
在Python中定义“虚假为真”语句以返回false会违反最小惊讶原则。