Python的奇怪行为是'

时间:2016-08-20 07:07:59

标签: python python-3.x

Python版本:win32上的Python 3.5.1(v3.5.1:37a07cee5969,2015年12月6日,01:38:48)[MSC v.1900 32位(英特尔)]。

>>> 256 is (2**8)
True
>>> 512 is (2**9)
False

UPD

>>> print(id(256), id(2**8))
1933723392 1933723392
>>> print(id(512), id(2**9))
60976880 60976704

1 个答案:

答案 0 :(得分:2)

is检查两个变量是否存储在的同一内存位置。以下说明这两个数字存储在内存中的不同位置:

>>> 512 is (2**9)
False

很可能,你真正想知道的是数字相等。为此,请测试相等性:

>>> 512 == (2**9)
True

特殊情况:None

None没有任何明智的价值。因此,检查某些内容是否等于None通常没有用。要查明某个变量是否为None,请使用is

>>> x = None
>>> x is None
True