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
# 虽然两个列表的值是一样的,但是列表是不一样的, 两个列表中的值都是相同的指向

 

posted @ 2017-11-18 23:50  王剑威  阅读(144)  评论(0编辑  收藏  举报