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'

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

  • 相关阅读:
    LeetCode Related Info
    LeetCode Climbing Stairs
    Linux命令语句秘籍
    Java基础学习 —— io
    Jquery的入门学习
    Java基础学习 —— bat处理文件
    Java基础学习 —— 线程
    Java基础学习——泛型
    java基础学习——集合
    两个div叠加触发事件发生闪烁问题
  • 原文地址:https://www.cnblogs.com/fengkun125/p/9147064.html
Copyright © 2011-2022 走看看