is和==的区别

1. id()

  通过id()我们可以查看到⼀一个变量表示的值在内存中的地址.

a1 = 100
b1 = 100
print(id(a1),id(b1)) #140712472404096, 140712472404096 a2 = 222222222222
b2 = 222222222222
print(id(a2),id(b2)) #2714854086672, 2714854086672 a3 = True
b3 = True
print(id(a3),id(b3)) #140712471869776, 140712471869776 内存地址相同 a4 = "abcdefghijklmnopqrstuvwxyz"
b4 = "abcdefghijklmnopqrstuvwxyz"
print(id(a4),id(b4)) #2230116006848, 2230116006848 内存地址相同 a5 = "abcdefghijklmnopqrstuvwxyz"*3
b5 = "abcdefghijklmnopqrstuvwxyz"*3
print(id(a5),id(b5)) #2234044245808, 2234044245808 内存地址相同 a6 = "uwidsoididoiwqoiewyueiydihbddwowqfewhufdnjcddududfisdygfiuwqiodmcdncduiosiiennxeniionwmwoiwieuruuewuuukskxsniiwhdhi2wuyrtfrvvufioqkq"*3
b6 = "uwidsoididoiwqoiewyueiydihbddwowqfewhufdnjcddududfisdygfiuwqiodmcdncduiosiiennxeniionwmwoiwieuruuewuuukskxsniiwhdhi2wuyrtfrvvufioqkq"*3
print(id(a6),id(b6)) #1998595213104, 1998595213104 内存地址相同 a7 = ["hello""world"]
b7 = ["hello""world"]
print(id(a7),id(b7)) #1915401364040, 1915401364104 内存地址不同 a8 = ("hello","world")
b8 = ("hello","world")
print(id(a8),id(b8)) #2328127912840, 2328127912840 内存地址相同 a9 = {"hello":"你好","world":"世界"}
b9 = {"hello":"你好","world":"世界"}
print(id(a9),id(b9)) #1975585307384, 1975585307456 内存地址不同

  注意(一般情况下): 在py文件中. 如果你只是单纯的定义一个字符串. 那么一般情况下都是会被添加到小数据池中的. 我们可以这样认为: 在使⽤用字符串的时候, python会帮我们把字符串进行缓存, 在下次使用的时候直接指向这个字符串即可. 可以节省很多内存.

  ==: 判断两端的值是否相等

  is: 判断两端的内存地址是否相等

a = "who am i"
b = "who am i"
print(id(a),id(b)) #2142885576880, 2142885576880
print(a is b) #True
print(a == b) #True li1 = ["who","am","i"]
li2 = ["who","am","i"]
print(id(li1),id(li2)) #1891093340744, 1891093340808
print(li1 is li2) #False
print(li1 == li2) #True

随机推荐

  1. 使用python requests模块搭建http load压测环境

    网上开源的压力测试工具超级的多,但是总有一些功能不是很符合自己预期的,于是自己动手搭建了一个简单的http load的压测环境 1.首先从最简单的http环境着手,当你在浏览器上输入了http://w ...

  2. Python-pycurl模块的安装

    先执行以下命令(因为我在另一个终端执行,所以history的编号有重复) 7 wget https://pypi.python.org/packages/source/p/pycurl/pycurl- ...

  3. JQuery左右切换实现

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. HTTP长连接、短连接究竟

    HTTP长连接.短连接究竟是什么?   1. HTTP协议与TCP/IP协议的关系 HTTP的长连接和短连接本质上是TCP长连接和短连接.HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用I ...

  5. Python网络_UDP编程

    本章将介绍UDP编程,更多内容请参考:Python学习指南 TCP是建立可靠连接,并且通信双方都可以以流的形式发送数据.相对TCP连接,UDP则是面向无连接的协议. 使用UDP协议时,不需要建立连接, ...

  6. Spring的两种动态代理:Jdk和Cglib 的区别和实现

    这是有意义的一天!自己研究一路畅通的感觉真爽 原理是参考大神的,代码手敲 一.原理区别: java动态代理是利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处 ...

  7. 微软Azure通知中心 (Azure Notification Hubs)

    Azure Notification Hubs 提供简单的方法从后台(azure或者on-promise)去发送通知在不同的平台上面(iOS, Android, Windows, Kindle, Ba ...

  8. Exception analysis

    Finding: Thread 119:1f7c Exception Code 0xE06D7363 From https://support.microsoft.com/en-us/help/185 ...

  9. kafka 学习资料

    kafka 学习资料 kafka 学习资料 网址 kafka 中文教程 http://orchome.com/kafka/index

  10. CentOS7安装部署zabbix3.4操作记录

    CentOS7安装部署zabbix3.4操作记录 1.安装前准备 1.1 查看centos的系统版本 [root@zabbix ~]# cat /etc/redhat-release CentOS L ...