Python:False vs 0

Gab*_*lin 5 python int boolean

在PHP中,您使用===符号来测试TRUEFALSE区别于10.

例如,if FALSE == 0返回TRUE,if FALSE === 0返回FALSE.因此,当在基数0中进行字符串搜索时,如果所讨论的子字符串的位置在开头就是正确的,那么您可以0从中区分出哪些PHP FALSE.

有没有办法在Python中这样做?

Amb*_*ber 18

在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 1234512345 is not 12345 + 1 - 1在大多数实施中,类似地.您几乎总是希望在这些情况下使用相等性.


Jor*_*ley 5

if something is False:
Run Code Online (Sandbox Code Playgroud)

是你应该做的

if something is None:
Run Code Online (Sandbox Code Playgroud)

也有效

道德是使用is ......(虽然你永远不应该这样something is 123457,或者类似)

为什么你不应该用整数和东西来做这件事,请参阅http://ideone.com/iKmWCn