• Day6--Python--小数据池和再谈编码


    一.小数据池
       参考
    目的:缓存我们字符串,整数,布尔值.在使用的时候不需要创建过多的对象
    缓存: int, str, bool
    int: 缓存范围 -5~256
    str:
    1. 长度小于等于1,直接缓存
    2. 长度大于1. 字符串中如果只有数字, 字母, 下划线。 就会缓存
    3. 乘以1。 同上, 乘以大于1的数。仅包含数字,字母下划线。最终长度小于等于20会缓存
    4. 使用sys模块中的intern()缓存字符串

    代码块的关系:如果在同一个代码块中。默认的整数和字符串还有布尔值都会进行缓存. 如果涉及计算。尊崇上面的规则
    如果跨代码块,按照上面的规则执行的

    内存地址 id() #对于赋值运算来说,指向的是一个内存地址,字典,列表,集合都一样.
    a = 1000
    print(id(a)) #内存的开辟是由解释器来完成的.
    二. is 和 == 的区别
    == 比较的是值 #双胞胎 == True
    is 比较的是内存地址(是不是同一个地址) #双胞胎 is False

    lst1 = [1, 2, 3]
    lst2 = [1, 2, 3]
    print(lst1 == lst2)
    print(lst1 is lst2)

    a = 'alex'
    b = 'alex'
    print(a == b)
    print(a is b) #在python中,默认会把数字,字符串,布尔值进行缓存
    只有不可变的对象才能缓存

    1.当我们在控制台的时候(面试时只考在控制台cmd command 的情况)
    1.int 数字及运算结果: -5~256之间的整数会被缓存
    2.str 字符串:
    长度小于等于1 会默认缓存
    长度大于1 如果字符串中只有数字,字母,下划线 缓存
    乘法得到的字符串,结果仅包含数字字母下划线最终长度不能超过20 缓存

    手动指定缓存
    from sys import intern()
    intern() 指定缓存内容(必须是str,不能是int)
    3.布尔值

    2.py文件里,一个代码块内部,只会缓存int, str, bool 也有自己的小数据池,缓存的范围会比外面(控制台)的代码块的数据池要大
    1.数字,都会缓存,运算结果在-5~256内缓存,超范围不缓存
    2.字符串 默认的字符串(包括中文和符号)都缓存,如果有乘法,乘数为1缓存,乘数不为1遵循上方结论(数字,字母,下划,线个数)
    3.布尔值 默认缓存

    三.编码的补充 decode 和 encode
    在python2中,默认的编码是ASCII
    在python3中Unicode是可以使用的,默认用的就是Unicode,但代码用UTF-8来储存
    1.为什么要编码. 把Unicode转换成UTF-8
    #编码
    s = '天气真好'
    abc = s.encode('UTF -8') #encode 之后的结果是bytes类型,依然是原来的字符串
    print(abc) # b'数据' 每个x表示1个字节,1byte
    #解码
    abc = b'xe5xa4xa9xe6xb0x94xe7x9cx9fxe5xa5xbd'
    s = abc.decode('UTF-8') #解码.用什么编码就用什么解码
    print(s)
      # print(b'xe5xa4xa9xe6xb0x94xe7x9cx9fxe5xa5xbd'.decode('utf-8'))


    unicode => utf-8 encode("utf-8")
    utf-8 => unicode decode("utf-8")
    utf-8和gbk不能直接转换
    bytes是字符串的另一种表示形式



  • 相关阅读:
    ie下常见的css兼容问题
    jQuery Easing 使用方法及其图解
    数组中常用的15个方法
    js按位运算符及其妙用
    图片格式知多少
    Linux top命令的用法详解
    Another app is currently holding the yum lock; waiting for it to exit...
    ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this S tatem
    Gitlab与Jenkins结合构成持续集成(CI)环境
    cobbler无人值守安装
  • 原文地址:https://www.cnblogs.com/surasun/p/9620230.html
Copyright © 2020-2023  润新知