python-day6

一. 小数据池,常量池

  id()查看变量的内存地址

  is 和 ==

    is 判断内存地址是否一致,

    == 判断内容是否一致,左右端的值是否一致

    a = 1000

    b = 1000

    print(a is b)#py文件中得到结果是True,command中得到False

  小数据池:一种缓存机制,也被称为驻留机制,网上搜索常量池,小数据池指的都是同一个内容

  优点:能够提高一些字符串,整数的处理速度,省略的创建对象的过程

  缺点:在'池'中创建或者插入新的内容会花费更多的时间

  小数据池只针对: 整数 字符串 布尔值

  数字:-5 and 256

  字符串:

      1. 字符串长度0或者1,都会默认进行缓存

      2. 长度大于1,只包含字母,数字,下划线,会缓存

      3. 用乘法得到的字符串 ①.乘数为1,仅包含数字,字母,下划线时会缓存,包含其他字符,而长度<+1也会被驻存

        ②. 乘数大于1,仅包含数字,字母,下划线这个时候会被缓存,但字符长度不能大于20

      4. 指定驻留,我们可以通过sys模块的inter()函数来指定要驻留的内容

    小数据池的作用:

      为了快速的创建字符串对象,可以减少内存的浪费

    用缓存的前提:数据可以被共享,不可变

二. 编码

  python3中:内存中使用的是unicode码

  1 ASCII:最早的编码,里面有英文大写字母,数字,特殊字符,没有中文,8个01代码,8个bit,1个byte

  2 GBK:中文国标码里面包含了ASCII 编码和中文常用编码 16bit 2个byte

  3 unicode: 万国码,包含所有国家的编码,32个bit , 4个byte 包含ASCII,(不好储存,浪费空间)

  4 utf-8:可变长度的万国码,是unicode的一种实现,最小字符占8位

    1,英文: 8bit  1byte

    2 欧洲文字 16bit 2byte

    3 中文 24bit  3byte

  综上,除了ASCII码以外,其他信息不能直接转换

  s = '我是文字'

  bs = s.encode('GBK')

  s = bs.decode('GBK')

  bss = s.encode('UTF-8')

  print(bss)

原文地址:https://www.cnblogs.com/Thui/p/9843751.html