Python里面的 【is】 跟【==】的区别,看完如下代码+注释你就彻底懂了
代码如下↓:
#通过一个变量给另外一个变量赋值 内存地址也一样
bedroom="枕头"
pillow=bedroom
print(id(bedroom),id(pillow))
print(bedroom is pillow)
print(bedroom==pillow)
print("++++++分割线++++++")
#通过给不同的变量赋值相同的内容(字符串的内容【不是】简单的字母,比如是汉字 空格,特殊字符等)
bedroom="枕头"
pillow="枕头"
print(id(bedroom),id(pillow))
print(bedroom is pillow)# is 比较的是变量的内存地址,如果是单独赋值(中文),变量地址不一样
print(bedroom==pillow)# == 比较的是变量的内容,所以运行后是True
print("++++++分割线++++++")
#通过给不同的变量赋值相同的内容(字符串的内容【是】简单的字母,纯字母)
bedroom="ABDDccd"
pillow="ABDDccd"
print(id(bedroom),id(pillow))
print(bedroom is pillow)# is 比较的是变量的内存地址,如果是单独赋值(纯英文字母),变量地址一样【区别于中文汉字】
print(bedroom==pillow)# == 比较的是变量的内容,所以运行后是True
运行结果如下↓:
1440605561744 1440605561744
True
True
++++++分割线++++++
1440610120400 1440610120496
False
True
++++++分割线++++++
1440608556784 1440608556784
True
True
jupyter notebook 运行截图如下↓:

|