python is 和 == 的区别、解码和编码 小数据池
一 、 is 和 ==
(1) is 是比较两边的内存地址
a=1 print(id(a)) b=1 print(id(b)) print(a is b) # True str='alex' print(id(str)) str1='alex' print(id(str1)) print(str is str1) # True lst=[1,2,3] print(id(lst)) lst1=[1,2,3] print(id(lst1)) print(lst is lst1) # True
(2) == 是比较两边的值是否相等
a = 'alex'
b = 'alex'
print(a == b) #True
a=10
b=10
print(a == b) #True
上述形式只对数字和字符串有效,其他数据类型如列表、字典、元组则不适用
二、解码和编码
(1)编码
字符==>字节
1 s='alex' 2 m=s.encode('utf-8') # 指定编码方式
(2)解码
字节==>字符
1 s.decode('utf-8') #解码方式与编码方式相同
三、小数据池
数字范围:-5~256
含有特殊字符的相同字符串,内存地址不一样 # 特殊字符@ * & %等等
单个字符串*20以内内存地址相同,21以外内存地址不同