Python:假对 0
·
问题:Python:假对 0
在 PHP 中,您使用===表示法来测试与1或0不同的TRUE或FALSE。
例如if FALSE == 0返回TRUE,if FALSE === 0返回FALSE。因此,在以 0 为基数进行字符串搜索时,如果所讨论的子字符串的位置正好在开头,则会得到0,PHP 可以将其与FALSE区分开来。
有没有办法在 Python 中做到这一点?
解答
在 Python 中,
-
is运算符测试身份(False is False,0 is not False)。 -
==运算符,用于测试逻辑相等(以及0 == False)。
从技术上讲,这些都不完全等同于 PHP 的===,后者比较逻辑相等和类型 - 在 Python 中,就是a == b and type(a) is type(b)。
is和==之间的一些其他区别:
可变类型文字
-
{} == {},但{} is not {}(同样适用于列表和其他可变类型) -
但是,如果
a = {},则a is a(因为在这种情况下它是对同一实例的引用)
字符串
"a"*255 is not "a"*255",但在大多数实现中是"a"*20 is "a"*20,这取决于 Python 如何处理字符串实习。但是,不能保证这种行为,在这种情况下您可能不应该使用is。"a"*255 == "a"*255并且几乎总是使用正确的比较。
数字
12345 is 12345但在大多数实现中12345 is not 12345 + 1 - 1类似。您几乎总是希望对这些情况使用相等性。
更多推荐

所有评论(0)