01 Python中is和==的区别

变量的三要素:变量名、赋值符号、变量值

首先定义一个变量:x=10

变量名:x

赋值符号:=

变量值:10


变量值的三大特征:id、type、value 

  • id:映射的是变量值的内存地址,内存地址不同,则id不同;
  • type:不同类型的值用来表示记录不同的状态;
  • value:变量值本身。
x = 10 print(id(x))  # 返回结果:140734572124096 
name="sky天空空" 
print(type(name))  # 返回结果:<class 'str'> 
print(name)  # 返回结果:sky天空空

is 和 == 的区别****

定义变量a=10,b=20

is:比较左右两个变量值的id(身份)是否相等;

==:比较左右两个变量值的value(值)是否相等

a=10 
b=20 
print(a is b) # 输出结果:False 
print(a == b) # 输出结果:False 
c=10 d=10 print(c is d) # 输出结果:True 
print(c == d) # 输出结果:True 
print(id(c)) # 输出结果:140734572124096 
print(id(d)) # 输出结果:140734572124096  # 此时变量c和变量d的id是相同的 
x=257 
y=257 
print(x is y) # 输出结果:False print(x == y) # 输出结果:True 
name1="sky天空空" 
name2="sky天空空" 
print(name1 is name2) # 输出结果:False 
print(name1 == name2) # 输出结果:True 
print(id(name1)) 
print(id(name2)) # name1和name2的id是不同的

了解:

小整数池 从python解释器启动的那一刻开始,就会在内存中事先申请一系列内存空间存放好常用的整数,这些整数的范围是:[-5,256]。 所以,对于在这些范围内的同一个整数赋值给不同的变量,那些变量所对应的id都是相同的(因为该整数已经提前被存放到内存当中)。

总结:

变量的id不同情况下,value值有可能相同,即两块不同的内存空间里可以存放相同的值;

变量的id相同情况下,value值一定相同,a is b 成立,a == b 也必然成立。

 

posted @ 2022-11-21 21:42  sky天空空  阅读(119)  评论(0)    收藏  举报