is和==,encode和decode
0.编码解码
>encode和decode a = "你好" s = a.encode("GBK") print(s) # b'\xc4\xe3\xba\xc3' 每一个\x是一个字节,每一个GBK占16bit,2个bytes,那么两个中文就是4个bytes,验证成功 s1 = a.encode("UTf-8") print(s1) # b'\xe4\xbd\xa0\xe5\xa5\xbd' 每一个\x是一个字节,每一个UTF-8中文占24bit,3个bytes,那么两个中文就是6个bytes,验证成功 b = "hello" b1 = b.encode("utf-8") print(b1) # b'hello' 在编解码英文时,不会换成16进制,会直接传输 b2 = b.encode("gbk") print(b2) # b'hello' c = b'\xe4\xbd\xa0\xe5\xa5\xbd' # 解码, c1 = c.decode("utf-8") print(c1) # 你好
1.is和==的区别
is和== # == 双等表⽰示的是判断是否相等, 注意. 这个双等比较的是具体的值.⽽而不是内存地址 # is 比较的是数据存储在内存中的地址 id aaa = "hello,world" bbb = "hello,world" print(id(aaa)) # 31339568 print(id(bbb) # 31339568 #返回的是同一个id,证明在内存中两个变量指向了同一个数据,这个就是针对字符串特有的小数据池 lst = [1, 2, 4] print(id(lst)) # 34747400 lst1 = [1, 2, 4] print(id(lst1)) # 34747464 # 虽然两个列表的值是一样的,但是列表是不一样的, 两个列表中的值都是相同的指向