Python中的is和==的区别

3 投票
2 回答
2528 浏览
提问于 2025-04-17 04:03

可能重复的问题:
Python中的字符串比较:is和==
什么时候==运算符和is运算符不一样?(Python)

我对Python还很陌生。我听到有人说用is,而不是==,因为“这不是C语言”。但是我写的代码x is 5没有按预期工作。

那么,按照正确的Python/PEP风格,什么时候该用is,什么时候该用==呢?

2 个回答

2

这两个运算符的意思是不同的。

  • is 用来检查对象的身份。也就是说,它用来判断两个操作数是否指向同一个对象。
  • == 用来检查值是否相等。也就是说,它用来判断两个操作数的值是否相同。

当你比较 x5 时,你通常关心的是它们的值,而不是存储这个值的对象。

11

你应该用 == 来比较两个值是否相等。用 is 来检查两个名字是否指向同一个对象。

你几乎不应该使用 x is 5,因为在某些情况下,小整数可能会被缓存。这可能会导致一些意想不到的结果:

>>> x = 256
>>> x is 256
True
>>> x = 257
>>> x is 257
False

撰写回答