Python:错误与0
在PHP中使用的===
符号,以测试TRUE
或FALSE
从不同的1
或0
。
例如if FALSE == 0
return TRUE
,if FALSE === 0
return
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
在大多数实现中,类似。您几乎总是想在这些情况下使用相等性。
-