zoukankan      html  css  js  c++  java
  • Python基础篇 -- 小数据池和再谈编码

    小数据池

    1. id()

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

    s = "Agoni"
    print(id(s))
    # 2410961093272
    

    2. is 和 ==

    == 判断左右两端的值是否相等,是不是一致

    is 判断左右两端的内存地址是否一致,如果返回True 可以确定这两个变量使用的是同一个对象

    在Python中,默认会把数字, 字符串, 布尔值进行缓存

    1. 当我们在控制台时(CMD) #按照这个记

    • 数字: -5 ~ 256 之间的整数会被缓存

    • 字符串:

      1. 长度小于等于1,会默认缓存
      2. 长度大于1. 如果字符串中只有数字,字母,下划线缓存
      3. 用乘法得到的字符串:①乘数是1 , 仅包括数字,字母,下划线时会被缓存② 乘数不是1,最终长度不能超过20
    • 手动指定缓存

      from sys import intern    # intern  指定缓存内容
      a = intern("Agoni@.com")
      b = intern("Agoni@.com")
      print(a is b)
      
    • 布尔值

    2. py文件里

    ​ py文件里,一个代码块内部, 只会缓存 int str bool .也有自己的小 数据池, 缓存范围回避外面的代码块的数据池大

    1. 数字. 基本上都会缓存  运算结果不缓存( -5~256  会缓存)
    
    1. 字符串. 默认的字符串都缓存 如果有乘法 遵循上方的结论
    2. 布尔值. 默认缓存

    再谈编码

    在Python2里面 默认的编码是ASCII

    在Python3中 UNICODE 是可以使用的, 默认用的就是UNICODE, 代码用UTF-8 来存储

    1. 编码? 把UNICODE 转换成UTF-8

      s = "未来可期"
      a = s.encode("UTF-8")  # encode 之后的结果是bytes类型   依然是原来的字符串
      print(a)    # 打印结果 b'数据'
      # b'xe6x9cxaaxe6x9dxa5xe5x8fxafxe6x9cx9f'    x  表示是16进制
      
      
    2. 解码

      a = b'xe6x9cxaaxe6x9dxa5xe5x8fxafxe6x9cx9f'
      s = a.decode("UTF-8")
      print(s)
      # 打印结果 未来可期
      

      GBK 不能用UTF-8 解码 , 必须用GBK解码 解码之后是UNICODE

  • 相关阅读:
    php 安装shpinx扩展
    sphinx 配置实例
    java系统监控分析Jprofile下载及安装配置【转】
    Java监控工具介绍,VisualVm ,JProfiler,Perfino,Yourkit,Perf4J,JProbe,Java微基准测试【转】
    Java虚拟机性能管理神器
    Java虚拟机性能管理神器
    Java虚拟机性能管理神器
    Java虚拟机性能管理神器
    Java虚拟机性能管理神器
    jvisualvm图解【转】
  • 原文地址:https://www.cnblogs.com/Agoni-7/p/10994660.html
Copyright © 2011-2022 走看看