标签:hide 效率 one 1.2 play 技术 pre 分享图片 整数
1.is和==的区别
1 is:判断两个值的内存地址(id)是否相等。 2 ==:两个value值是否相等。 3 4 is: 5 1.第一种情况: 6 >>> n1=123 7 >>> n2=123 8 >>> n1 is n2 9 True 10 >>> id(n1) 11 1353978128 12 >>> id(n2) 13 1353978128 14 15 2.第二种情况: 16 >>> n1=1234567 17 >>> n2=1234567 18 >>> n1 is n2 19 False 20 >>> id(n1) 21 43798416 22 >>> id(n2) 23 48262320 24 25 第三种情况: 26 >>> n1=1.2 27 >>> n2=1.2 28 >>> n1 is n2 29 False 30 >>> id(n1) 31 43819296 32 >>> id(n2) 33 43819248 34 35 总结:Python仅仅对比较小的整数对象进行缓存(范围为范围[-5, 256])缓存起来,而并非是所有整数对象。需要注意的是,这仅仅是在命令行中执行,而在Pycharm或者保存为文件执行,结果是不一样的,这是因为解释器做了一部分优化。 36 37 ==: 38 第一种情况: 39 >>> n1=123 40 >>> n2=123 41 >>> n1 == n2 42 True 43 44 第二种情况: 45 >>> n1=1234567 46 >>> n2=1234567 47 >>> n1 == n2 48 True 49 50 第三种情况: 51 >>> n1=1.1 52 >>> n2=1.1 53 >>> n1 == n2 54 True 55 56 1、is 比较两个对象的 id 值是否相等,是否指向同一个内存地址; 57 2、== 比较的是两个对象的内容是否相等,值是否相等; 58 3、小整数对象[-5,256]在全局解释器范围内被放入缓存供重复使用; 59 4、is 运算符比 == 效率高,在变量和None进行比较时,应该使用 is。
标签:hide 效率 one 1.2 play 技术 pre 分享图片 整数
原文地址:https://www.cnblogs.com/iwxk/p/9095340.html