当前位置:首页python > 正文

Python 技巧:== 与 is 的区别

作者:野牛程序员:2025-12-22 10:50:05python阅读 1992
Python 技巧:== 与 is 的区别
# /*
# Python 技巧:== 与 is 的区别
# --------------------------------------------------------
# == 比较“值是否相等”
# is 比较“是否为同一个对象(同一块内存)”
#
# == → 判断内容
# is → 判断身份
#
# 一般用于:
#   == 用于比较数值、字符串、列表内容…
#   is 用于检查 None、True、False 或单例对象
# */

# --------------------------------------------------------
# 值相同,但对象不同
a = [1, 2, 3]
b = [1, 2, 3]

print("a == b:", a == b)     # True(内容一致)
print("a is b:", a is b)     # False(不同对象)

# --------------------------------------------------------
# 小整数缓存带来的 is True 情况(解释器优化)
x = 10
y = 10
print("x is y:", x is y)     # True(小整数池复用对象)

# --------------------------------------------------------
# None 判断必须用 is
n = None
print("n is None:", n is None)

# --------------------------------------------------------
# 字符串有时也会由于缓存而 is True(但不保证)
s1 = "hello"
s2 = "hello"
print("s1 == s2:", s1 == s2)
print("s1 is s2:", s1 is s2)   # 常为 True,但不可依赖

# --------------------------------------------------------
# 要点总结:
# 1) == 比较值;is 比较对象身份;
# 2) list / dict / tuple 的 is 基本为 False(不同对象);
# 3) 小整数与部分字符串因缓存可能使 is 为 True;
# 4) None 判断统一使用 is;
# 5) 不要用 is 判断数值或字符串内容。
# */

#
# a == b: True
# a is b: False
# x is y: True
# n is None: True
# s1 == s2: True
# s1 is s2: True


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
  • Python 技巧:== 与 is 的区别
  • 相关推荐

    最新推荐

    热门点击