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)