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)
  • 相关阅读:
    Java实现 蓝桥杯 历届试题 连号区间数
    Java实现 蓝桥杯 历届试题 连号区间数
    Java实现 蓝桥杯 历届试题 连号区间数
    Java实现 蓝桥杯 历届试题 连号区间数
    Java实现 蓝桥杯 历届试题 连号区间数
    Java实现 蓝桥杯 历届试题 大臣的旅费
    Java实现 蓝桥杯 历届试题 大臣的旅费
    Java实现 蓝桥杯 历届试题 大臣的旅费
    Java实现 蓝桥杯 历届试题 大臣的旅费
    Navicat查询哪些表有指定字段名
  • 原文地址:https://www.cnblogs.com/knighterrant/p/9845569.html
Copyright © 2011-2022 走看看