为什么python将0计算为False?

为什么python将0计算为False?,python,Python,Python是一种面向对象的编程语言,尽管它处理0 例如,Ruby之类的语言将0计算为true,因为(我相信)0是一个数字,数字是对象,因此它们必须计算为true,因为它们存在 关于这些约定,我所知道的是,它们之所以存在是因为性能和/或设计的原因,但是: 将0视为False有什么好处? 将0视为true的缺点是什么?这可能与Python的根在C中有关。在C中,false==0。同样在学术层面上,在二进制表示中,0几乎总是被视为false。几乎所有公共语言(C分支、Haskell、Python等的

Python是一种面向对象的编程语言,尽管它处理0 例如,Ruby之类的语言将0计算为true,因为(我相信)0是一个数字,数字是对象,因此它们必须计算为true,因为它们存在

关于这些约定,我所知道的是,它们之所以存在是因为性能和/或设计的原因,但是:

将0视为False有什么好处?
将0视为true的缺点是什么?

这可能与Python的根在C中有关。在C中,false==0。同样在学术层面上,在二进制表示中,0几乎总是被视为false。

几乎所有公共语言(C分支、Haskell、Python等的所有语言)都将0解释为false。这很有意义,因为问题“这个变量是否包含有意义的内容?”通常在>0时为真,而在>0时为假

我记得看到0被用作True的唯一地方是在unixshell中,因为程序的所有其他退出代码都指示一个特定的错误,而0表示没有错误


如果Ruby将0视为True,我只能想象它适合Unix脚本和处理返回代码。

FWIW、JavaScript和PHP也将
0
视为
false
。这与OO编程语言IMO没有任何关系。程序员问题的副本。SE:(通过谷歌找到)。相关:这可能与严格/松散的键入有关,而不是与语言是否面向对象有关。对于它的价值,大多数语言认为0是“假”。@费利克林没有说什么是特定的优点或缺点,IMO所说的是,“这是有意义的”。尽管有一条由梅森·惠勒(Mason Wheeler)提出的评论对我来说非常有意义(还有29条)。我一直认为
0
(或其他数字)C函数返回作为“你看到错误了吗?”的答案。函数是否返回
17
?表示:是,错误代码17。它返回42吗?是的,错误代码42。它是否返回0?没有错误。确切地说,壳牌考虑的是成功,而不是事实。某些命令,如
test
,设计用于在其参数计算为true(通常包括非零值)时发出成功信号。chepner:Run“for i in true false;do echo-n”$i:;$i;echo$?;done”,如果您不相信我的话。