zoukankan      html  css  js  c++  java
  • 06 is和==的区别 encode()编码 decode()解码

    主要内容:

    1.is和==的区别:

      id()函数:得到内存地址

     s = "alex 是 大 xx"
    abc = id(s)   # 得到内存地址
    print(abc)
    s = "燃哥"
    s1 = "燃哥"
    # 小数据池. 会对字符串进行缓存, 为了节省内存
    print(id(s))
    print(id(s1))
    

     结果是相同的. 

    2523241503272
    2523241503272
    

      结论:小数据池会对字符串和整数,布尔进行缓存,对元祖,列表,字典不会缓存.

      ==判断两边的值

      is判断内存地址

     lst = ["马化腾", "小威"]
    lst2 = ["马化腾", "小威"]
    print(lst == lst2)  # True
    print(lst is lst2)  # False

    2.编码:encode()

      ASCII:英文,特殊字符,数字,8bit,1byte

      GBK:中文  16bit,2byte

      unicode:万国码  32bit,4byte

      UTF-8:长度可以改变的unicode.英文:8bit,1byte  欧洲:16bit,2byte 中文:24bit,3byte

    英文:编码之后的结果是英文本身
    中文:编码之后UTF-8 下. 一个中文3个字节
    encode() 编码之后的内容是bytes类型的数据
    s="美团外卖"
    print(s.encode("GBK"))        # 用gbk编码,一个中文两个字节
    print(s.encode("UTF-8"))      #用UTF-8编码,一个中文三个字节
    s="alex"
    print(s.encode("GBK"))
    print(s.encode("UTF-8"))

    3.解码:decode()

    bs=b'xe6x9dx8exe5x98x89xe8xafx9axe7x9ax84xe5x84xbfxe5xadx90xe8xa2xabxe7xbbx91xe6x9exb6xe4xbax86'
    bss=bs.decode("UTF-8")
    print(bss)
    

      GBK=>utf-8

    GBK=>utf-8
    bs = b'xb6xf6xc1xcbxc3xb4'
    s=bs.decode("GBK")     #先解码成unicode字符串
    bss=s.encode("UTF-8")  #把字符串编码成UTF-8
    print(bss)
    

      

  • 相关阅读:
    5、面试题-测试用例篇
    4、面试题-技术篇
    3、面试题-测试流程
    2、面试题-接口测试用例
    全屏圆角弹出框
    Jquery的each退出循环
    拖动DIV
    head里面的其他标记
    更新字段
    Python---序列化
  • 原文地址:https://www.cnblogs.com/gyh412724/p/9283442.html
Copyright © 2011-2022 走看看