zoukankan      html  css  js  c++  java
  • Python的小数据池和编码解码

    1、小数据池

      代码块:  一个模块, 一个函数, 一个类, 甚至每一个command命令都是一个代码块. 一个文件也是一个代码块.而不需要创建一个新的数据. 这样会节省更多的内存区域.

          在cmd命令行执行python时,每一条代码就是一个代码块; 

             在pycharm中执行文件时,每一个.py文件就是一个代码块.

      is:  判断的是两者的内存地址是否一致.   print(id(变量))  ----> 查内存地址

      ==:  判断两者值是否一致.

      小数据池:  一种缓存机制, 可以快速地创建字符串对象, 以减少内存的浪费 (只针对整数, 字符串, bool). 

          在python中对-5到256之间的整数会被驻留在内存中, 并将一定规则的字符串缓存. 在使用时, 内存中只会创建一个给数据的对象, 保存在小数据池中. 当使用的时候直接从小数据池中获取对象的内存引用, 而不需要创建一个新的数据, 这样就会节省更多的内存区域.

          对于整数:  -5 到 256

          对于字符串: 只针对含有字母,数字,下划线式并且字符长度不大于20的字符串会缓存(汉字不会缓存).

    2、编码解码

      ASCII(含数字,字母和特殊字符) :  8位  1字节  

      gbk(国标码,含有6w多个汉字):    16位  2字节

      Unicode(万国码):         32位  4字节  (太长不适合传输和保存)

      utf-8(可变长度的unicode):       24位  英文1字节, 欧洲文字2字节, 中文3字节  (适合传输和保存)

      在python 3的内存中,用的是unicode, 在python 2中用的是ASCII.

      程序在运行的时候, 使用的是unicode编码方式, 因为unicode是万国码, 什么内容都可以进行显示, 在数据传输和存储时候, 则以 utf-8 的形式进行存储, 省内存.

      encode()和decode()

    1 bs = b'xc2xedxbbxafxccxda'    # GBK编码
    2 b = bs.decode("GBK")
    3 bss = b.encode("utf-8")
    4 print(bss)
    编码解码
  • 相关阅读:
    应用上架前如何知道自己应用的下载地址?
    Multi-line NSAttributedString with truncated text
    Adding AirDrop File Sharing Feature to Your iOS Apps
    Add sharing to your app via UIActivityViewController
    [原]iOS自带社会化分享框架——Social.framework
    xcode 制作静态库.a文件 详解
    Fiddler怎么对IPhone手机的数据进行抓包分析
    Mac上的抓包工具Charles
    30、准确计算CoreText高度的方法
    keil MDK中如何生成*.bin格式的文件
  • 原文地址:https://www.cnblogs.com/bk9527/p/9843601.html
Copyright © 2011-2022 走看看