zoukankan      html  css  js  c++  java
  • is 和 == 的区别, 编码的问题以及解码

    1. is 和 == 的区别:

        id(变量)返回给你这个变量的内存地址.

       s1 = "alex"

      s2 = "alex"

       print(id(s1),id(s2))   内存地址是一样的

      

       lst1 = [1,4,7]

       lst2 = [1,4,7]

       print(id(lst1),id(lst))   内存地址不一样

       小数据池(常量池):把我们使用过得值存储在小数据池中,小数据池给数字和字符串使用,其它数据类型不存在.

       纯文字信息和下划线,会被添加在小数据池中,如果有特殊字符的,不会被添加到小数据池,每次都是新的.

        is 比较的是内存地址,  == 判断两边得值是否相等.

    2. 编码 

        ASCII   8bit   1byte  英文大小写字母,特殊字符,数字.

        GBK 16bit   2byte中文兼容ASCII

        UNICODE   32bit    4byte  万国码,占空间 ,浪费.

        UTF - 8   unicode的升级版,英文8bit   1byte  , 中文  24bit   3byte.

        传输过程中用:UTF - 8 或 GBK  不用UNICODE  (因为浪费资源)

        内存中,我们程序运行的过程中,编码是unicode.转换的时候,GBK不能和utf-8 直接转换,但是可以通过UNICODE转换.

        在程序中字符串可以编码成bytes类型的数据.

        编码encode()  编码的转换.

        s = "alex"

       print(s.encode("utf-8"))

       print(s.encode("GBK"))

       打印出来的都是b"alex"

       s = "中"

       print(s.encode("utf-8))       b'\xe4\xb8\xad'

       print(s.encode("GBK"))       b'\xd6\xd0'

       编码之后的东西和之前的是一样的,只是看着不一样.

  • 相关阅读:
    最小生成树Prim算法
    哈夫曼树与哈夫曼编码
    二叉树的非递归遍历
    浅谈C++中指针和引用的区别
    poj2406 Power Strings
    (收藏)KMP算法的前缀next数组最通俗的解释
    HDU 1556 Color the ball
    Floyd算法
    最短路Dijkstra和Flyod
    编程中无穷大常量的设定技巧
  • 原文地址:https://www.cnblogs.com/fengkun125/p/9147064.html
Copyright © 2011-2022 走看看