zoukankan      html  css  js  c++  java
  • python 编码相关

    编码的使用

      ascii: 数字,字母, 特殊字符 组成

                字节: 8bit        1byte

            gbk: 国标码。16bit, 2byte

       unicode: 万国码。32bit, 4byte

            utf-8:可变长度的unicode

                英文: 1byte 8bit

                欧洲文字: 2byte,16bit

                中文: 3byte, 24bit

    以上的所有的编码都兼容ascii码,所以除了ascii码之外,其他信息不能直接进行转换

    因为python2默认使用的是asslli 码进行编码,所以在python 2中的编码文件如下

     指明python解释器所在路径和编码的方式

      在python3中的内存里使用的是unicode编码,但是在保存代码时使用的是utf-8的编码方式。原因是unicode适合进行计算但是不适合存储,utf-8适合存储和传输

      在python3的内存中. 在程序运行阶段. 使用的是unicode编码. 因为unicode是万国码. 什么内容都可以进行显示. 那么在数据传输和存储的时候由于unicode比较浪费空间和资源. 需要把unicode转存成UTF-8或者GBK进行存储. 怎么转换呢. 在python中可以把文字信息进行编码.编码之后的内容就可以进行传输了. 编码之后的数据是bytes类型的数据.其实啊. 还是原来的数据只是经过编码之后表现形式发生了改变而已.

    bytes的表现形式(一般认为bytes是python中最小的数据单元)

    b'xxxxx' 这种格式的数据是bytes类型的数据,数据传输中。包括文字。 图片。 视频都是bytes。转换成bytes的时候一般是用于传输和存储

           对于英文: 无论使用什么的编码方式转换的bytes都是与ascii码一样的

    eg:

      对于中文:由于utf-8 与 gbk中对于中文的编码使用的字节是不一样的utf-8使用的是3个字节表示一个中文字符,而gbk 使用的是2个字节对应一个中文字符

    所以中文转化成bytes,如下:

     

      

      在网络传输和存储的时候我们python是保存和存储的bytes类型. 那么在对方接收的时候. 也是接收的bytes类型的数据. 我们可以使用decode()来进行解码操作. 把bytes类型的数据还原回我们熟悉的字符串:

    对上面的进行解码如下:

     

    小数据池

      小数据池. 一种数据缓存机制. 也被称为驻留机制. 各大编程语言中都有类似的东西. 在⽹上搜索常量量池,小数据池指的都是同一个内容.小数据池只针对:整数, 字符串, 布尔值. 其他的数据类型不存在驻留机制,对于整数,python中对-5到256之间的整数会被驻留在内存中. 但是不在这个区间的话,是不存在驻留机制的

    但在pycharm 中只要你只是对变量进行赋值,但是没有进行运算的话,那么无论字符串是多长或者数据有多大都是用友驻留的机制,但是进行运算之后都会按照上面的方式判断是否存在驻留

    小数据池 is和==的区别

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

    判断左右两端内容的内存地址是否一致. 如果返回True, 那可以确定这两个变量使

    用的是同一个对象

  • 相关阅读:
    Redis 字符串(String)
    Redis 哈希(Hash)
    Redis 键(key)
    Redis 命令
    Redis 数据类型
    Redis 配置
    Log4j 2X 日志文件路径问题
    shiro项目从 log4j1X 迁移到 log4j2X
    shiro+SpringMVC 项目 配置404页面
    邮件发送-》http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256
  • 原文地址:https://www.cnblogs.com/vivi0403/p/9843820.html
Copyright © 2011-2022 走看看