zoukankan      html  css  js  c++  java
  • 6 小数据池和编码

    一.小数据池
    1. id()查看变量的内存地址
    is 判断内存地址是否相同
    ==判断 数据类型的值是否相等
    2.小数据池的作用:
    为了快速的创建字符串对象,减少内存空间浪费
    用缓存的前提:数据可以共享,不可变
    小数据池. 一种数据缓存机制. 也被称为驻留机制

    3.代码块:python程序是由代码块构成的. 一个代码块的文本作为python程序执行的单元.
    代码块: 一个模块, 一个函数, 一个类, 甚至每一个command命令都是一个代码块.
    一个文件也是一个代码块, eval()和exec()执行的时候也是⼀个代码块
    4.小数据池只针对: 整数, 字符串, 布尔值. 其他的数据类型不存在驻留机制

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

    6.对于字符串:
    1. 如果字符串的长度是0或者1, 都会默认进行缓存
    2. 字符串长度大于1, 但是字符串中只包含字母, 数字, 下划线时才会缓存
    3. 用乘法的到的字符串. ①. 乘数为1, 仅包含数字, 字母, 下划线时会被缓存. 如果
    包含其他字符, 而长度<=1 也会被驻存, ②. 乘数大于1 . 仅包含数字, 字母, 下划
    线这个时候会被缓存. 但字符串长度不能大于20
    4. 指定驻留. 我们可以通过sys模块中的intern()函数来指定要驻留的内容.

    二.编码
    1. ASCII 1个bytes 8位
    2. gbk 2个bytes 16位
    3. unicode 4个bytes 32位
    4. utf-8
    英文 1个bytes
    欧洲 2个bytes
    中文 3个bytes

    1.python3中使用的是unicode, python2里面使用的ascii
    2.uincode 适合进行计算,unicode 不适合存储. utf-8适合存储和传输
    3.需要对字符串进行编码,编码成适合传输的utf-8或者GBK
    1.encode("gbk") encode("utf-8")
    2.编码之后是字节以 b'开头,方便传输,
    3.英文在编码的时候还是英文本身
    4.编码: 存储和传输。 encode()
    5.解码: 接受数据的时候。decode()
    6.bytes是python中的最小数据单元
    4.例子:

    GBK的bytes类型 bs
    (1)
    bs = b'xc2xedxbbxafxccxda'
    1. 解码成unicode(str)
    s = bs.decode("gbk")
    2. 编码成utf-8
    bss = s.encode("utf-8")
    print(bss) # b'xe9xa9xacxe5x8cx96xe8x85xbe'
    (2)
    s = "我是文字"
    bs = s.encode("GBK") # 我们这样可以获取到GBK的文字
    # 把GBK转换成UTF-8
    # 首先要把GBK转换成unicode. 也就是需要解码
    s = bs.decode("GBK") # 解码
    # 然后需要进行重新编码成UTF-8
    bss = s.encode("UTF-8") # 重新编码
    print(bss)
  • 相关阅读:
    day30---内置函数
    day30---绑定方法与非绑定方法
    元类以及属性查找
    python 内置方法/魔法方法
    python 面向对象高级-反射机制
    centos7下jenkins升级
    屏蔽百度右侧热搜
    centos7部署汉化版gitlab
    CentOS 7 安装 Jenkins
    centos7安装与配置ansible
  • 原文地址:https://www.cnblogs.com/knighterrant/p/9845569.html
Copyright © 2011-2022 走看看