06 is和==的区别 encode()编码 decode()解码

主要内容:

1.is和==的区别:

  id()函数:得到内存地址

 s = "alex 是 大 xx"
abc = id(s)   # 得到内存地址
print(abc)
s = "燃哥"
s1 = "燃哥"
# 小数据池. 会对字符串进行缓存, 为了节省内存
print(id(s))
print(id(s1))

 结果是相同的. 

2523241503272
2523241503272

  结论:小数据池会对字符串和整数,布尔进行缓存,对元祖,列表,字典不会缓存.

  ==判断两边的值

  is判断内存地址

 lst = ["马化腾", "小威"]
lst2 = ["马化腾", "小威"]
print(lst == lst2)  # True
print(lst is lst2)  # False

2.编码:encode()

  ASCII:英文,特殊字符,数字,8bit,1byte

  GBK:中文  16bit,2byte

  unicode:万国码  32bit,4byte

  UTF-8:长度可以改变的unicode.英文:8bit,1byte  欧洲:16bit,2byte 中文:24bit,3byte

英文:编码之后的结果是英文本身
中文:编码之后UTF-8 下. 一个中文3个字节
encode() 编码之后的内容是bytes类型的数据
s="美团外卖"
print(s.encode("GBK"))        # 用gbk编码,一个中文两个字节
print(s.encode("UTF-8"))      #用UTF-8编码,一个中文三个字节
s="alex"
print(s.encode("GBK"))
print(s.encode("UTF-8"))

3.解码:decode()

bs=b'xe6x9dx8exe5x98x89xe8xafx9axe7x9ax84xe5x84xbfxe5xadx90xe8xa2xabxe7xbbx91xe6x9exb6xe4xbax86'
bss=bs.decode("UTF-8")
print(bss)

  GBK=>utf-8

GBK=>utf-8
bs = b'xb6xf6xc1xcbxc3xb4'
s=bs.decode("GBK")     #先解码成unicode字符串
bss=s.encode("UTF-8")  #把字符串编码成UTF-8
print(bss)

  

原文地址:https://www.cnblogs.com/gyh412724/p/9283442.html