难道保证False == 0和True == 1,在Python(假设他们没有被用户重新分配)?例如,无论Python的版本(现有的,可能的,未来的版本)是什么,它是否以任何方式保证以下代码将始终产生相同的结果?
0 == False # True
1 == True # True
['zero', 'one'][False] # is 'zero'
Run Code Online (Sandbox Code Playgroud)
任何对官方文档的引用都将非常感谢!
编辑:正如许多答案所述,bool继承自int.因此,问题可以改写为:"文档是否正式表明程序员可以依赖于从整数继承的布尔值,以及值0和1?".这个问题与编写由于实现细节而不会失败的健壮代码有关!
我有一个愚蠢但问题.假设我有一个包含不同值的列表.像这样:
[1,2,3,'b', None, False, True, 7.0]
Run Code Online (Sandbox Code Playgroud)
我想迭代它并检查每个元素是否都不在某些禁用值的列表中.例如,这个列表是[0,0.0].
当我检查是否为假时,[0,0.0我得到了True.我知道python会False转到0这里.但我怎么能避免它并使这个检查正确 - 该False值不在[0,0.0]列表中?
在PHP中,您使用===符号来测试TRUE或FALSE区别于1或0.
例如,if FALSE == 0返回TRUE,if FALSE === 0返回FALSE.因此,当在基数0中进行字符串搜索时,如果所讨论的子字符串的位置在开头就是正确的,那么您可以0从中区分出哪些PHP FALSE.
有没有办法在Python中这样做?