python解码和编码的区别_python基础小知识,is和==的区别,编码和解码

1、is和==的区别

1)id() 通过id()我们可以查看到一个变量表示的值在内存中的地址

>>> s1 = "Tanxu"

>>> s2 = "Tanxu"

>>> id(s1)

49754608

>>> id(s2)

49754608

>>> lst1 = [1,2,3]

>>> lst2 = [1,2,3]

>>> id(lst1)

49806088

>>> id(lst2)

49807112

>>> tu1 = (1,2)

>>> tu2 = (1,2)

>>> id(tu1)

49840328

>>> id(tu2)

49097800

>>> id(("哈哈哈哈哈哈"*10))

48426160

>>> id(("哈哈哈哈哈哈"*10))

48426160

#我们发现 字符串的地址是相同的,而列表和元组的地址是不同的

小数据池(常量池):把我们使用过得值存储在小数据池中,供其他的变量使用。小数据池给数字和字符串使用,其他数据类型不存在。

对于数字:-5~256是会被加到小数据池中的,每次使用都是同一个对象

对于字符串:A、如果是纯文字信息和下划线,那么这个对象会被添加到小数据池

B、如果是带有特殊字符的,那么不会被添加到小数据池中,每次都是新的

C、如果是单一字母*n的情况,'a'*20 ,在20个单位是可以的,超过20个单位就不会添加到小数据池中

注意:(在一般情况下),在py文件中,如果你只是单纯的定义一个字符串,那么一般情况下都是会被添加到小数据池中的。我们可以这样认为:在使用

字符串的时候,python会帮我们把字符串进行缓存,在下次使用的时候直接指向这个字符串即可,可以节省很多内存。

2)is 和 == 的区别:

==:判断左右是否相等和一致,比较的是内容

is:判断的是内存地址,id()的值来判断,判断的是内存地址

>>> print(s1 == s2)

True

>>> print(lst1 == lst2)

True

>>> print(s1 is s2)

True

>>> print(lst1 is lst2)

False

2、编码和解码encode()和decode()

1)encode()  编码 获取到的是编码之后的结果,bytes

2)decode()  解码 把bytes编程我们熟悉的字符串【用什么编码的,需要用什么解码】

1、encode()编码之后的内容是bytes类型的数据

1) 默认把字符串编码成utf-8的形式

2) 英文:编码之后结果还是英文

3) 中文:编码之后utf-8,一个中文占3个字节

4) encode(“GBK”)编码成GBK的形式,一个中文占2个字节

2、decode(“GBK”) 从别人那里读取到的是GBK编码格式,需要在括号中注明,解码之后是字符串

3、各种编码格式之间相互转化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值