当前位置:首页>python>第12课 Python 的运算符——身份运算符

第12课 Python 的运算符——身份运算符

  • 2026-10-11 06:59:21
第12课 Python 的运算符——身份运算符

开篇小提示:看完本节课知识点以后,欢迎在评论区留下你的疑问、代码测试结果,大家可以一起交流学习!

一、课程简介

前面我们学习过算术、赋值、比较、逻辑、位、成员运算符,本节课我们学习身份运算符,它是Python专属运算符,用来判断两个对象是不是同一个内存地址、是不是同一个东西。

二、基础概念讲解

1. 什么是身份运算符

身份运算符用于对比两个变量的内存地址,判断二者是不是内存当中同一个对象。

重点区分容易混淆知识点:

==:对比两个变量的值是否相等

is:对比内存地址是否一样,是否为同一个对象

2. 两个身份运算符汇总

运算符

名称

作用

is

是

两个对象内存地址一致返回True,否则False

is not

不是

两个对象内存地址不一样返回True,一样返回False

3. 小知识点:id()函数

id(变量) 可以查看对象对应的内存唯一地址数字,是学习身份运算符必备函数。

三、代码实操案例

案例1:整数常量池(小整数缓存机制)

Python会缓存‑5~256范围内的整数,这些数字常驻内存,多个变量赋值同一个小数,内存地址相同。

# 小整数a = 10b = 10print(id(a))print(id(b))print(a is b)print(a == b)# 超出缓存区间的整数x = 1000y = 1000print(id(x))print(id(y))print(x is y)print(x == y)
运行说明:

1. 10属于‑5~256,a、b内存地址相同,is结果为True

2. 1000超出缓存范围,两个独立对象,地址不一样,x is y 返回False,但数值相等 == 返回True

案例2:字符串对象测试

s1 = "hello"s2 = "hello"print(s1 is s2)s3 = "hello world"s4 = "hello" + " world"print(s3 is s4)
案例3:列表(可变对象)重点易错示例

列表属于可变数据类型,就算内容一模一样,也是两块独立内存

list1 = [1,2,3]list2 = [1,2,3]print(list1 == list2)   # 值相等 Trueprint(list1 is list2)   # 内存地址不同 Falselist3 = list1print(list1 is list3)    # 指向同一个内存地址 True
案例4:is‑not 使用示例
num1 = 66num2 = 88print(num1 is not num2)
四、核心特殊知识点总结

1. == 判断数值;is 判断内存地址,二者不可混用

2. 小整数缓存:-5 ~ 256 的整数会被Python缓存复用

3. 不可变类型(int、str、tuple)会触发常量缓存;列表、字典、集合属于可变对象,每次新建都会开辟全新内存

4. 变量赋值传递 a=b,代表两个变量共用同一个内存地址

五、课后练习题(共3题)

习题1(基础)

请写出代码,定义两个变量 a=5,b=5,分别打印id地址、a is b、a == b 的运行结果。

习题2(易错题)

已知 lst1=[2,4,6],lst2=[2,4,6],请问 lst1 is lst2 和 lst1 == lst2 输出结果是什么?说出理由。

习题3(代码实操)

创建变量m = 999,n = 999;打印二者id,并且判断 m is not n 的布尔结果。

本节课的身份运算符和之前的比较运算符很容易搞混,如果你有代码报错、看不懂的地方,可以在评论区留言,一起沟通学习!

最新文章

随机文章